2017-12-28 27 views
1

私はMembersSkillsテーブルを持っています。複数のカスタムフィールド名とのRails関連付け?

各メンバーのレコードには、スキルへのリンクが3つあります:skill_primaryskill_secondary、およびskill_tertiaryです。

これらの各列は、スキルテーブルの行に対応する単なるIDです。

私ができることを望んでいるのは、スキルを与えられたメンバーが参照して、シルクテーブルからそのレコードを取得することです。

So:member.skill_primaryは、実際のスキルレコードを返します。

私はそれを取り除くためにどのような種類の関連付けを設定しますか?

答えて

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 

、Active Recordのアソシエーションのレールガイドのセクション4.1.2を参照してください。http://guides.rubyonrails.org/association_basics.html#belongs-to-association-reference

関連する問題