9

我目前有两种不同的模型:UserProject. 该User模型具有三种类型的用户——所有者、承包商和客户。我想为一个项目分配多个承包商。我正在与一个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_idassignments不是user_id.

在我的assignments表中,我目前有列contractor_idproject_id. 如果我改用它,一切似乎都可以正常工作user_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 回答