Ruby on rails 活动记录查询:如何为关联分组

Ruby on rails 活动记录查询:如何为关联分组,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我想找到一个聪明的方法来获取一些记录 我有以下课程: 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

我想找到一个聪明的方法来获取一些记录

我有以下课程:

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
我收到我的物品

=> [#<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: 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>

将与单个用户相关的特定问题的统计信息返回给我。

我建议在问题统计信息中包含部分id,这样您就可以简单地执行此操作

QuestionStat.where(section: 1, user_id: current_user.id)

就我所知,以当前关联/表/列的方式,按部门获取问题统计数据的查询将非常混乱和低效。

您是否建议另一种数据建模?只需在问题模型上,也在问题统计模型中,使用您当前拥有的节id列即可。
<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
QuestionStat.where(section: 1, user_id: current_user.id)