Ruby on rails RubyonRails,从另一个表向表中插入信息
我有一张“车辆”表,看起来像这样 ID|MAKE|MODEL 1 | acura | cl 2 | acura | el 3 | acura | integra 4 |奥迪| a3 …|…| 我需要从“makes”表中创建两个表,只从“vehicles”表中获取“make”列信息,并将其放入“make_name”列中,这是我自己成功创建的(也通过uniq方法使其不会重复) id|make_name 1 |阿库拉 2 |奥迪 3 |宝马 …| 还有第二张表(“make_models”),我已经制作了,但是在获取所需信息时遇到了问题。这张桌子看起来像这样 id|make|u id|model|u name id |生成当前模型所属的id |车辆表中的模型 我试图将这行代码插入rails控制台Ruby on rails RubyonRails,从另一个表向表中插入信息,ruby-on-rails,ruby,console,Ruby On Rails,Ruby,Console,我有一张“车辆”表,看起来像这样 ID|MAKE|MODEL 1 | acura | cl 2 | acura | el 3 | acura | integra 4 |奥迪| a3 …|…| 我需要从“makes”表中创建两个表,只从“vehicles”表中获取“make”列信息,并将其放入“make_name”列中,这是我自己成功创建的(也通过uniq方法使其不会重复) id|make_name 1 |阿库拉 2 |奥迪 3 |宝马 …| 还有第二张表(“make_models”),我已经制作
@vehicles = Vehicle.all
@makes = Make.all
@vehicles.each do |v|
MakeModel.create :make_id => @current_make = @makes.where(:make_name => v.make).id, :model_name => v.model
end
但是收到了这个错误信息
NoMethodError:Make Load(1.0ms)选择“makes”。*从“makes”中选择“makes”。“Make_name”=?[[“命名”、“极品”]]
未定义的方法“id”#
问题在于,您正试图在此处调用一组记录的
id
:
@makes.where(:make_name => v.make).id
如果要通过make_name查找第一条记录,请改用find_by
:
@makes.find_by(:make_name => v.make).id
问题在于,您正试图在此处调用一组记录的
id
:
@makes.where(:make_name => v.make).id
如果要通过make_name查找第一条记录,请改用find_by
:
@makes.find_by(:make_name => v.make).id
试试这个
MakeModel.create :make_id => @current_make = @makes.where(:make_name => v.make).first.id, :model_name => v.model
试试这个
MakeModel.create :make_id => @current_make = @makes.where(:make_name => v.make).first.id, :model_name => v.model
您还可以执行@makes.where(…).first.id。谢谢您的回复!:)您还可以执行@makes.where(…).first.id。谢谢您的回复!:)