我有Employee
模型和TicketStatus
模型
在STI
模型上使用Employee
方法,以便拥有子模型'Advisor'
和'Staff'
,在TicketStatus
我想要实现以下内容:制作一个TicketStatus
与Advisor
,TicketStatus
和Staff
,然后TicketStatus
和PreviousAdvisor
,TicketStatus
和PreviousStaff
之间的关系,我的代码是这样的:
class TicketStatus < ActiveRecord::Base
attr_accessible :status_id, :ticket_id , :staff_id, :advisor_id, :previous_advisor_id, :previous_staff_id
belongs_to :status
belongs_to :ticket
belongs_to :staff, class_name: 'Staff', foreign_key: 'staff_id'
belongs_to :previous_staff , class_name: 'Staff', foreign_key: 'previous_staff_id'
belongs_to :advisor, class_name: 'Advisor', foreign_key: 'advisor_id'
belongs_to :previous_advisor, class_name: 'Advisor', foreign_key: 'previous_advisor_id'
end
问题是我在同一个class name
上不能有两个关联,在使用rubymine生成依赖关系图后我发现第二个关联覆盖了第一个关联,我该怎么做才能使这些关联工作正确吗?
答案 0 :(得分:0)
这是因为外键是相同的。您可以在以下两种情况下指定第二个关系的外键:
belongs_to :previous_staff , class_name: 'Staff', foreign_key: 'previous_staff_id'
belongs_to :previous_advisor, class_name: 'Advisor', foreign_key: 'previous_advisor_id'
这将保留单独的关系。 staff
和advisor
关系很好。
编辑:在对问题进行大量修改后回答了这个问题。