那段关系会是什么?

时间:2014-04-25 17:48:47

标签: ruby-on-rails ruby-on-rails-3 activerecord

我有以下课程:

class MockQuestion < ActiveRecord::Base
    belongs_to :mock
    belongs_to :question
end

class Mock < ActiveRecord::Base
    has_many :mock_questions
    has_many :answers
end

class Question < ActiveRecord::Base
    has_many :mock_questions
    has_many :answers
end

class Answer < ActiveRecord::Base
    belongs_to :question
    belongs_to :mock
end

由于答案可能属于问题和模拟,我想用相同的模拟和问题将其连接到MockQuestion。

我可以通过以下方式查询:

Answers.where(question_id: question_id, mock_id: mock_id)

但我想做点什么

MockQuestion.answers

我可以用它做任何关系吗?

P.S。:答案表有“mock_id”和“question_id”

1 个答案:

答案 0 :(得分:2)

为什么不在self.answers课程中创建MockQuestion

def answers
  Answers.where(mock_id: self.mock.id, question_id self.question.id)
end

我并不认为这种关系是可能的。因此,替代方法