энергичная нагрузка с динамическим состоянием - PullRequest
1 голос
/ 04 марта 2012

Можно ли выполнить энергичную нагрузку, используя динамическое условие?Более конкретно:

u_id = params[:user_id]
Container.includes(:items).where("items.user_id =?", u_id)

Это, очевидно, дает не все контейнеры, а только элементы определенного user_id, поскольку применяется условие where ко всему запросу, а не просто :items, но есть ли способ сделать это с помощью ARel, или это требует специального запроса SQL?

1 Ответ

0 голосов
/ 04 марта 2012

Просто позвоните scoped по вашему запросу:

Container.where("items.user_id =?", u_id).includes(:items).scoped

Это вернет объект Arel, а не запрос к базе данных.

Попробуйте в Rails Console, и вы увидите объект Arel, который создается по сравнению с тем, когда вы запускаете его без scoped.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...