我有一个access_list表,在members表中有access_lists的多个外键,如mobile_access_list_id email_access_list_id first_name_access_list_id。如何在rails 4中管理这种关联。
答案 0 :(得分:1)
尝试以下方法:
# app/models/access_list.rb
class AccessList < ActiveRecord::Base
has_many :members
end
# app/models/member.rb
class Member < ActiveRecord::Base
belongs_to :email_access_list, class_name: 'AccessList', foreign_key: 'email_access_id'
belongs_to :mobile_access_list, class_name: 'AccessList', foreign_key: 'mobile_access_id'
belongs_to :first_name_access_list, class_name: 'AccessList', foreign_key: 'first_name_access_id'
end
您在评论belongs_to :access_list,:class_name => "AccessList" , :foreign_key => "email_access_id"
中发布的代码将仅针对access_list
创建关联email_access_list
,而不会针对mobile_access_list
创建关联access_list
。我认为唯一的问题是关联的命名。 {{1}}是一个通用名称,可能会让您感到困惑!
因此,需要注意的是,您要为不同的外键定义不同的关联,当然这取决于您对该关联的需求。