Rails与多个自定义字段名称关联?

时间:2017-12-28 23:00:04

标签: ruby-on-rails associations

我有MembersSkills个表。

每个会员记录都有3个技能链接:skill_primaryskill_secondaryskill_tertiary

这些列中的每一列都只是一个与技能表中的行对应的ID。

我希望能够做的是参考给定技能的成员并从窗台表中获取该记录。

所以:member.skill_primary会返回实际的技能记录。

我会建立什么类型的协会来解决这个问题?

1 个答案:

答案 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