【发布时间】:2014-03-27 02:26:02
【问题描述】:
我正在尝试根据主题或类别查询问题。我有一个包含许多主题的类别模型和一个包含许多问题的主题模型。如何选择 subject_id = x 或 category_id = y 的 50 个问题?我不确定是否需要更改模型关联然后查询或使用具有当前关联的查询。以下是模型(去掉了一些多余的代码):
category.rb
class Category < ActiveRecord::Base
has_many :subjects, class_name: "Subject",
foreign_key: "category_id"
has_many :questions, through: :subjects
end
主题.rb
class Subject < ActiveRecord::Base
belongs_to :category
has_many :questions, class_name: "Question",
foreign_key: "subject_id"
end
问题.rb
class Question < ActiveRecord::Base
belongs_to :subject
end
我取得的最大成功是使用“Question.joins(:subject).group(category_id:1)”,它只返回具有关联类别的最后一个问题。有什么建议么?谢谢!
【问题讨论】:
-
我想我在这里对给定类别有正确的查询:Question.joins(:subject).merge(Subject.where(:category_id =>1)),现在选择 50 个随机问题。 . .
标签: sql ruby-on-rails activerecord rails-activerecord