我目前有两种不同的型号:User
和Project
。 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_id
表格中使用assignments
而不是user_id
。
在我的assignments
表格中,我目前有列contractor_id
和project_id
。如果我使用user_id
代替,一切似乎都有效,但这会在我的观点中导致事情变得非常混乱。
我将如何做到这一点?
答案 0 :(得分:16)
您应该使用Assignment
中的:foreign_key
选项,例如:
class Assignment
belongs_to :user, :foreign_key => :contractor_id
belongs_to :project