[英]Rails active record query through multiple tables
我正在尝试根据主题或类别查询问题。 我有一个包含许多主题的类别模型,以及一个包含许多问题的主题模型。 如何选择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
subject.rb
class Subject < ActiveRecord::Base
belongs_to :category
has_many :questions, class_name: "Question",
foreign_key: "subject_id"
end
Question.rb
class Question < ActiveRecord::Base
belongs_to :subject
end
我获得的最大成功是“ Question.joins(:subject).group(category_id:1)”,它仅返回最后一个带有相关类别的问题。 有什么建议么? 谢谢!
所以你可以做一个范围
class Question < ActiveRecord::Base
scope :q_or_c ->(q, c){ where('category_id = ? OR question_id = ?', q, c) }
...
end
然后用
Question.q_or_c(question_id, category_id)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.