如何覆盖默认外键?

时间:2013-05-21 09:24:58

标签: ruby-on-rails activerecord

我在两个模型之间有has_manybelongs_to关联,如下所示:

class Section < ActiveRecord::Base
 self.primary_key = 'id'
 has_many :rights
end

class Right < ActiveRecord::Base
 self.primary_key = 'id'
 belongs_to :section
end

SECTION表也有ID和SECTION_ID列。上面的代码通过section表中的ID列将Right与Section相关联。我希望它通过SECTION_ID列关联。我该怎么做?

2 个答案:

答案 0 :(得分:1)

编辑:第二次阅读我认为我误解了你的问题,你真的想要与Section表中主键以外的字段相关联吗?这不是很常见,因此我的误解。

您需要使用:primary_key => 'field_name'代替:foreign_key

belongs_to :section, :primary_key => 'section_id'

答案 1 :(得分:0)

试试这个

class Section < ActiveRecord::Base
 self.primary_key = 'id'
 has_many :rights
end

class Right < ActiveRecord::Base
 self.primary_key = 'id'
 belongs_to :section, :foreign_key => "section_id"
end