Rails-запрос для «строки, разделенной запятыми» в массиве - PullRequest
0 голосов
/ 15 июня 2019

Это сайт рельсов для статей. Статьи имеют теги, хранящиеся в 4 разных полях - technology_tag, sub_segment_tag и еще пару полей. Каждое из этих полей содержит строку, разделенную запятыми.

У меня есть метод, который возвращает массив тегов для данной статьи (на странице шоу), объединяя 4 поля тега строки, разделенных запятыми (@tags ниже).

На странице показа статей у меня есть запрос, чтобы получить похожие статьи, например:

Article.regular.published.where ('date>?', '2018-01-01'). Order (date:: desc) .where ('sub_segment_tag IN (?)', @Tags) .limit ( 3)

Например: - Если у просматриваемой статьи есть - @tags = ["Кошелек"]

Только статьи с точно одним значением в sub_segment_tag, т.е. "Кошелек", сопоставляются. Я хочу, чтобы он совпадал со статьями, которые имеют sub_segment_tag = "Wallet, Banking" и другие значения.

Пожалуйста, дайте мне знать, если это возможно.

Спасибо

1 Ответ

0 голосов
/ 17 июня 2019

Используйте непосредственно как оператор для запроса. Потому что значение, хранящееся в столбце, является своего рода форматом строки. Ниже будет возвращено все sub_segment_tag, который имеет «Кошелек».

Article.regular.published.where('date > ?', '2018-01-01').order(date: :desc).where("sub_segment_tag LIKE (?)", '%Wallet%').limit(3)
...