Ruby on rails 外键:方法不';行不通

Ruby on rails 外键:方法不';行不通,ruby-on-rails,Ruby On Rails,我有两种型号 class LunchSet < ActiveRecord::Base has_many :sides end class Side < ActiveRecord::Base attr_accessible :set_id belongs_to :lunch_set, foreign_key: :set_id end 正如您所看到的,它仍在寻找“午餐集id”列,而不是我想要的“集id”…您需要在午餐集模型中定义外键 class LunchSet &l

我有两种型号

class LunchSet < ActiveRecord::Base
  has_many :sides
end

class Side < ActiveRecord::Base
  attr_accessible :set_id

  belongs_to :lunch_set, foreign_key: :set_id

end

正如您所看到的,它仍在寻找“午餐集id”列,而不是我想要的“集id”…

您需要在午餐集模型中定义外键

class LunchSet < ActiveRecord::Base
  has_many :sides, :class_name => 'Side', :foreign_key => 'set_id'
end

class Side < ActiveRecord::Base
  attr_accessible :set_id

  belongs_to :lunch_set, :class_name => 'LunchSet', :foreign_key => 'set_id'

end
class午餐集'Side',:foreign\u key=>'set\u id'
结束
类端'午餐集',:外键=>'set\u id'
结束

是否显示相同的错误?如果您正在使用rails控制台进行检查,请重新启动它。重新加载!命令有时不起作用。您能停止那个控制台并再次启动它来检查它吗?您说得有点对,它现在检查的是正确的列,但当结果需要为控制台中的两个表添加记录时,它会给我一个空数组。l=leuntset.create()和Side.create([{:set\u id=>l.id},{:set\u id=>l.id}])。然后尝试l.sides.s=Side.create;s、 设置_id=53,然后您必须使用s.save保存它,否则它不会保存到数据库中。
class LunchSet < ActiveRecord::Base
  has_many :sides, :class_name => 'Side', :foreign_key => 'set_id'
end

class Side < ActiveRecord::Base
  attr_accessible :set_id

  belongs_to :lunch_set, :class_name => 'LunchSet', :foreign_key => 'set_id'

end