9

現在、 と の 2 つの異なるモデルがUserありProjectます。このUserモデルには、所有者、請負業者、クライアントの 3 種類のユーザーがいます。1つのプロジェクトに複数の請負業者を割り当てたい。has_many :through次のように、関連付けでこれを試しています。

Class User
   has_many :assignments
   has_many :projects, :through => :assignments 

Class Project
   has_many :assignments
   has_many :contractors, :through => :assignments

Class Assignment
   belongs_to :user
   belongs_to :project

私の問題は、の代わりにテーブルで使用contractor_idすることです。assignmentsuser_id

私のassignmentsテーブルには現在、列contractor_idとがありますproject_iduser_id代わりに使用するとすべてが機能するように見えますが、後で私の見解では物事がかなり面倒になります。

どうすればこれを達成できますか?

4

1 に答える 1

17

:foreign_keyのオプションを使用する必要がありますAssignment。例:

class Assignment
  belongs_to :user, :foreign_key => :contractor_id
  belongs_to :project
于 2012-06-15T19:13:49.067 に答える