2013-07-24 5 views
0

Мне нужен способ найти все записи в модели в зависимости от условий одной из связанных с ней моделей.
Что-то вроде этого:найти записи в модели на основе условий соответствующей модели

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

который будет возвращать все продукты города, чьи клиента является Нью-Йорк и имеет номер продукта либо 1, 3 или 5.

таблицы Мой продукт имеет столбец customer_id, поэтому я мог бы, вероятно, найти всех клиентов, чей город - Нью-Йорк, захватить их идентификаторы, а затем использовать :customer_id => customerIdArray, но есть ли более простой способ, как в моем примере? Возможно, используя что-то вроде customer.city или customer[:city]?

ответ

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') 
+0

Ну, похоже, что сделал трюк. Большое спасибо, приятель. Пусть ваш меч останется острым, а ваш конь будет быстрым. – notblakeshelton

Смежные вопросы