Ruby on Rails:从数据库中选择列等于数组中的值

时间:2013-07-16 14:38:26

标签: ruby-on-rails-3 activerecord

如果我的数据库中有一个表(table1)的ID数组。有没有办法查询另一个表(table2)来选择列等于等于table1中的一个ID的所有记录。

到目前为止我的代码是:

LabQuestion.where("product_id=#{Product.where(:brand_id => brand_id).pluck(:id)}")

在此代码中,我正在尝试检索与品牌中所有产品相关联的所有实验室问题。这段代码不起作用,但我试图证明我的需要。

2 个答案:

答案 0 :(得分:1)

假设您已正确设置关系,可以使用joins加入这两个表并按如下方式查询:

LabQuestion.joins(:product).where(:products => { :brand_id => brand_id })

答案 1 :(得分:1)

您可以使用包含而不是连接,如下所示

LabQuestion.includes(:product).where(:products => { :brand_id => brand_id })