我有Members
和Skills
个表。
每个会员记录都有3个技能链接:skill_primary
,skill_secondary
和skill_tertiary
。
这些列中的每一列都只是一个与技能表中的行对应的ID。
我希望能够做的是参考给定技能的成员并从窗台表中获取该记录。
所以:member.skill_primary
会返回实际的技能记录。
我会建立什么类型的协会来解决这个问题?
答案 0 :(得分:1)
要执行此操作,您需要声明3个belongs_to
关联,并使用:class_name
和:foreign_key
选项。
class Member < ActiveRecord::Base
belongs_to :skill_primary, class_name: 'Skill', foreign_key: :skill_primary
belongs_to :skill_secondary, class_name: 'Skill', foreign_key: :skill_secondary
belongs_to :skill_tertiary, class_name: 'Skill', foreign_key: :skill_tertiary
end
有关这些选项的文档,请参阅“活动记录关联Rails指南”的第4.1.2节:http://guides.rubyonrails.org/association_basics.html#belongs-to-association-reference