2013-07-16 2 views
2

Если у меня есть массив идентификаторов из таблицы (table1) в моей базе данных. Есть ли способ запросить другую таблицу (таблица2), чтобы выбрать все записи, где столбец равен значению, равному одному из идентификаторов из таблицы1.Ruby on Rails: выберите из базы данных, где столбец равен значению из массива

Мой код до сих пор:

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

В этом коде я пытаюсь получить все Lab вопросы, которые связаны со всеми продуктами бренда. Этот код не работает, но я попытался продемонстрировать свои потребности.

ответ

1

Если у вас есть настройки ваши отношения должным образом, вы можете использовать joins для объединения двух таблиц и запросов их следующим образом:

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

Вы можете использовать включает в себя вместо присоединяется, как показано ниже

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

Вы * can * use 'includes', но в этом случае это не рекомендуется. – Mischa

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