Условие для фильтрации записей рельсов - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть модель пользователя, и пользователь может ассоциироваться с несколькими тегами (имеет и относится ко многим ассоциациям)

В модели пользователя

has_and_belongs_to_many :tags

Мое текущее требование - фильтровать людей на основедля примененных тегов и не примененных тегов.

scope :tags_equals, -> (params) { joins(:tags).where('tags.tags ILIKE (?)', "#{params['value']}") }

Но я не мог сделать то же самое для фильтра tag_not_contain (как показано ниже), поскольку у людей есть много строк на основе примененных тегов.

    scope :tag_not_contain, -> (params) { joins(:tags).where('tags.tags not 
ILIKE (?)', "#{params['value']}") }

Если у меня есть идентификаторы тегов 1,2, 3 для пользователя 1. Если мне нужны записи для пользователей, у которых нет тега 1. Тогда первая запись не будет совпадать, но две другиезаписи будут совпадать.

Как можно получить результаты в этом случае?

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