我有一个公司,位于层次结构之上。用户提出的所有问题属于公司。目前,一个问题与群组和用户有很多关系。这意味着可以将问题分配给组或用户。
class Question < ActiveRecord::Base
belongs_to :company
has_many :answers
has_many :question_participants
has_many :users, through: :question_participants,
source: :questionable, source_type: 'User'
has_many :groups, through: :question_participants,
source: :questionable, source_type: 'Group'
通过多态来完成关联,这是question_participants。现在我想要完成的是允许一个问题属于一个公司(它目前正在做),但也被分配给该公司。
我试过像这样添加它:
has_many :companies, through: :question_participants,
source: :questionable, source_type: 'Company'
并在公司模型上执行:
has_many :questions
has_many :question_participants, as: :questionable
has_many :questions, through: :question_participants
现在的问题是,有许多属于我的问题,我认为这是正确的方法,但我不确定如何正确设置这一点。