rails外键问题

时间:2011-05-15 10:19:59

标签: ruby-on-rails ruby foreign-key-relationship

我是Rails框架中的新手。我创建了表格:

DealerGroups                         Dealer 
------------                         ------------
Id:integer(primary key)              Id:integer(primary key)
name:string                          dealer_group_id:integer(foreign key)

但是当我尝试设置Dealer.dealer_group_id = value(此值存在于DealerGroups表中)时,我得到一个“未初始化的常量经销商:: DealerGroup”例外。

在模特中我有:

class Dealer < ActiveRecord::Base
  belongs_to :dealer_buying_group, :foreign_key => "dealer_buying_group"
end

class DealersGroup < ActiveRecord::Base
  has_many :dealer
end

如果我删除has_manybelongs_to关系,则一切正常。

为什么它不适用于关系?

2 个答案:

答案 0 :(得分:1)

小心“s”(为什么你的“经销商”表不是“经销商”?) 您无需在Rails中手动设置外键,只需在生成脚手架/模型/控制器时为其定义Model_ID字段,然后 belongs_to has_many 在模型中将为你做关系

<强>数据库:

DealerGroups                         Dealers 
------------                         ------------
Id:integer(primary key)              Id:integer(primary key)
name:string                          dealergroup_id:integer

模型

class Dealer < ActiveRecord::Base
  belongs_to :dealergroup
end

class DealersGroup < ActiveRecord::Base
  has_many :dealers
end

要从经销商处访问交易组的名称,只需使用

即可
controller: 
@dealer = Dealer.find_by_id(myInt)

view:
<%= @dealer.dealergroup.name %>

答案 1 :(得分:0)

您正在上课DealersGroup,而您正在寻找dealer_group_id