has_many和属于(+多态)

时间:2015-10-22 08:14:10

标签: ruby-on-rails

我有一个公司,位于层次结构之上。用户提出的所有问题属于公司。目前,一个问题与群组和用户有很多关系。这意味着可以将问题分配给组或用户。

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

现在的问题是,有许多属于我的问题,我认为这是正确的方法,但我不确定如何正确设置这一点。

0 个答案:

没有答案