Я пытаюсь найти умный способ получить некоторые записи.Активный запрос записи: как группировать для ассоциации
У меня есть эти классы:
class Question < ActiveRecord::Base
belongs_to :section
has_many :answers
has_many :quiz_questions
has_many :quizzes, through: :quiz_questions
has_many :question_stats
end
class User < ActiveRecord::Base
has_many :quizzes, dependent: :destroy
has_one :user_profile
has_many :questions, through: :quizzes
has_many :question_stats
end
class Section < ActiveRecord::Base
has_many :questions
has_many :quizzes
end
class QuestionStat < ActiveRecord::Base
belongs_to :user
belongs_to :question
end
Если я запрос для
current_user.question_stats
Я получаю мои объекты
=> [#<QuestionStat id: 1, user_id: 2, question_id: 2, errors_count: 0, done_count: 0, done: false>,
#<QuestionStat id: 6, user_id: 2, question_id: 39, errors_count: 0, done_count: 0, done: false>,
#<QuestionStat id: 7, user_id: 2, question_id: 102, errors_count: 0, done_count: 0, done: false>,
#<QuestionStat id: 8, user_id: 2, question_id: 96, errors_count: 0, done_count: 0, done: false>,
#<QuestionStat id: 9, user_id: 2, question_id: 46, errors_count: 0, done_count: 0, done: false>,
#<QuestionStat id: 10, user_id: 2, question_id: 119, errors_count: 0, done_count: 0, done: false>,
Мне нужно сгруппировать статистику для секции, так что я знаю для каждого раздела сколько вопросов отвечает пользователь и сколько ошибок он сделал.
Question_id принадлежит_to Вопрос, относящийся к разделу.
Я стараюсь также действовать по-другому, начиная с current_user.questions
Если я запрашиваю
current_user.questions
Я получающий на все вопросы пользователя ответ.
<Question id: 94, quiz_type: "base", image: nil, text: "Com'è chiamato l'insieme degli organi con i quali ...", section_id: 1>,
#<Question id: 68, quiz_type: "base", image: nil, text: "Come viene denominata la parte di calpestio più ba...", section_id: 1>,
#<Question id: 111, quiz_type: "base", image: nil, text: "Un'elica destrorsa:", section_id: 1>,
#<Question id: 103, quiz_type: "base", image: nil, text: "Si ha cavitazione quando:", section_id: 1>
Конечно
current_user.questions.first.questions_stats.first
возвращение мне стат для конкретного вопроса, связанного с одним пользователем.
Вы предлагаете другое моделирование данных? –
Просто просто столбец 'section_id', который у вас есть на модели' Question', также в модели 'QuestionStat'. – Kasperi