Rails一对一关系 - 外键位置

时间:2010-11-15 11:38:58

标签: mysql ruby-on-rails activerecord ruby-on-rails-3

我有两个型号,地址和国家。地址包含基本地址信息(第1行,第2行,城市等),并与国家/地区具有一对一的关系。

countries表是只读的,我不希望它改变。

我在“地址”表格中创建了一个 country_id 列的表单,但它正在国家/地区表中查找 address_id

如何告诉rails使用地址表中的 country_id 来查找国家/地区?

这是模型的样子:

class Address < ActiveRecord::Base
   belongs_to :consultant
   has_one :country
   accepts_nested_attributes_for :country   
end

class Country < ActiveRecord::Base
   belongs_to :address
end

谢谢!

1 个答案:

答案 0 :(得分:1)

来自belongs_to文档:

  

只有在此类包含外键时才应使用此方法。

所以你的代码应该是:

class Address < ActiveRecord::Base
  has_to :consultant
  belongs_to :country
  accepts_nested_attributes_for :country   
end

class Country < ActiveRecord::Base
  has_one :address
end