根据相关模型的条件在模型中查找记录

时间:2013-07-24 18:09:05

标签: mysql ruby-on-rails

我需要一种方法来查找模型中的所有记录,具体取决于其中一个相关模型的条件。
如下所示:

Product.where(:product_number => [1,3,5], customer.city => "New New York")

将返回客户所在城市为New New York且产品编号为1,3或5的所有产品。

我的产品表有一个customer_id列,所以我可能只找到所有城市是纽约的客户,获取他们的ID,然后使用:customer_id => customerIdArray,但有一种更简单的方法,就像在我的例子中一样?也许使用类似customer.citycustomer[:city]的内容?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

Product.joins(:customer).where('products.product_number in (:product_list) and customers.city = :customer_city', product_list: [1, 3, 5], customer_city: 'New New York')