在 mongoid 中关联同一个模型两次

Associates the same model twice in mongoid

我有两个 class Intern::QuestionIntern::Answer,标准关联如下:

class Intern::Question
  has_many :intern_answers, class_name: 'Intern::Answer'
end

class Intern::Answer
  belongs_to :intern_question, class_name: 'Intern::Question'
end

现在我想引用两次回答 belongs_to 问题,答案可以存储父问题和下一个问题,例如:

class Intern::Question
  has_many :intern_answers, class_name: 'Intern::Answer'
  has_many :node_for_answers, class_name: 'Intern::Answer'
end

class Intern::Answer
  belongs_to :intern_question, foreign_key: :intern_question_id, class_name: 'Intern::Question'
  belongs_to :next_question, foreign_key: :next_question_id, class_name: 'Intern::Question'
end

但我已经尝试过并得到这个错误:

Mongoid::Errors::AmbiguousRelationship

找到解决方案 here,使用 inverse_of

class Intern::Question
  has_many :intern_answers, class_name: 'Intern::Answer', inverse_of: :intern_question
  has_many :node_for_answers, class_name: 'Intern::Answer', inverse_of: :next_question
end

class Intern::Answer
  belongs_to :intern_question, foreign_key: :intern_question_id, class_name: 'Intern::Question', inverse_of: :intern_answers
  belongs_to :next_question, foreign_key: :next_question_id, class_name: 'Intern::Question', inverse_of: :node_for_answers
end