繁体   English   中英

通过多个表进行Rails活动记录查询

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM