В Rails 5, как мне написать искатель "как" запрос на поле члена? - PullRequest
1 голос
/ 21 февраля 2020

Я использую Rails 5. Откуда у меня эта модель ...

Класс Book

has_one :author

Авторский класс имеет атрибут "имя". Как написать запрос для объектов книги, автор которых содержит строку «Джо»? Я попробовал это

Book.includes(:author).where(:author => [ "LOWER(name) LIKE :search", :search[Dch => "%joe%"])

, но без игры в кости.

1 Ответ

2 голосов
/ 21 февраля 2020

Попробуйте:

Book.joins(:author).where('LOWER(authors.name) LIKE ?', '%joe%')

Синтаксис plural_table_name.column_name LIKE ... должен работать.

В этом случае нельзя использовать параметры ha sh для вызова where, так как вы Вы используете оператор LIKE для запроса.

Обратите внимание, что я изменил ваш includes на joins, так как я не знаю, будете ли вы вызывать столбцы "child" один раз имея результат вашего запроса. joins достаточно, чтобы добавить предложение INNER JOIN и получить доступ к столбцам автора.

...