Может ли ассоциация использоваться для фильтрации данных в рельсах, где предложение? - PullRequest
0 голосов
/ 13 февраля 2020

У меня есть ProjectItem модель и ProjectItemTransaction модель. Я хочу вернуть все project_items, где project_item_transacations имеют SKU > 0. Как я могу написать это?

ProjectItem.where(project_item_transactions.sku > 0) ??

1 Ответ

1 голос
/ 13 февраля 2020

Да, вы можете использовать имя ассоциации, если оно совпадает с именем таблицы, что означает, что в конечном итоге вы будете использовать только имя таблицы. Как уже упоминалось @Fabio, правильный способ запроса - соединение, чтобы избежать перекрестного соединения и дублирования записей

ProjectItem.
  joins(:project_item_transactions).
  where("project_item_transactions.sku > ?", 0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...