RoR lookup HABTM join by multiple ids

RoR lookup HABTM join by multiple ids

我有 3 个表 -- 一个模型 QuizResult,一个模型 QuizAnswers,然后是它们的可联合表 (quiz_answer_quiz_results):

class QuizResult < ActiveRecord::Base
    has_and_belongs_to_many :quiz_answers, :join_table => :quiz_answer_quiz_results
    belongs_to :quiz
    has_many :quiz_questions, through: :quiz_answers
end

class QuizAnswer < ActiveRecord::Base
  belongs_to :quiz_question
  has_and_belongs_to_many :quiz_results, :join_table => :quiz_answer_quiz_results
end

我希望能够通过搜索属性 quiz_answer_ids 来找到 QuizResult,但我无法弄清楚关系,即使通过 sql 语法也是如此。

朝相反的方向前进,如果我问 QuizResult.first.answer_ids 我得到 [5,9]:

QuizResult.first.quiz_answer_ids
  QuizResult Load (2.0ms)  SELECT "quiz_results".* FROM "quiz_results" ORDER BY "quiz_results"."id" ASC LIMIT 1
   (4.2ms)  SELECT "quiz_answers".id FROM "quiz_answers" INNER JOIN "quiz_answer_quiz_results" ON "quiz_answers"."id" = "quiz_answer_quiz_results"."quiz_answer_id" WHERE "quiz_answer_quiz_results"."quiz_result_id" =   [["quiz_result_id", 1]]
 => [5, 9]

我想做的事情已经给出 quiz_answer_ids 5,9 我怎样才能取回 QuizResult 对象?我一直在尝试各种奇怪的 QuizResult.joins(:quiz_answers) 或 sql 查询,但无济于事。

尝试:

QuizResult.includes(:quiz_answers).where(quiz_answers: { id: [5,9] })