У меня есть модели:
class Exam < AR::Base
has_many :questions_in_exams
has_many :questions, :through => :questions_in_exams
end
class QuestionsInExam < AR::Base
belongs_to :examination
belongs_to :question
# This model also has a "question_index" attribute
end
class Question < AR::Base
has_many :questions_in_exams
has_many :examinations, :through => :questions_in_exams
end
Учитывая экземпляр экзамена, я хочу получить все его вопросы вместе с дополнительными атрибутами из модели соединения (например, «question_index»).Как я могу добиться этого?
Если я сделаю:
e = Examination.find(1)
questions = e.questions
Тогда элементы в массиве вопросов не будут иметь атрибут "question_index"
Я думаю, я могу написать:
e = Examination.find(1)
questions = e.questions_in_exam(:include => "question")
Но это выглядит не так уж и элегантно, поскольку большая часть данных, которые мне нужны, находится в модели Question, но возвращаемый массив будет состоять из экземпляров QuestionInExam.
Есть идеи?
Спасибо