Добро пожаловать в Stack Overflow ?.
Запрос не работает для нескольких жанров, потому что он выбирает только строки из таблицы genres
, где name
жанра содержит оба "рок" и"блюз", поэтому он будет соответствовать только жанрам, таким как "рок / блюз" или "блюзовые рок-баллады".
Звучит так, как вы хотите, это WHERE ("genres"."name" ILIKE '%rock%' OR "genres"."name" ILIKE '%blues%')
, где OR
означает, что он будет совпадать, так что жанры "рок" и "блюз" будут совпадать.
С точки зрения того, как заставить это работать в Ransack, этот комментарий к проекту GitHubвыглядит аналогично вашей, но включает следующую строку перед установкой групп:
params[:q][:combinator] = 'or'
Я не проверял это локально, но появляется , что добавление этой строки преобразует группукомбинация от AND
до OR
, которая должна дать вам правильные результаты поиска.
Дайте мне знать, как это происходит, и я уберу пробные "следует" и "появляется"«Если это работает ?.