У меня есть модель пользователя, и пользователь может ассоциироваться с несколькими тегами (имеет и относится ко многим ассоциациям)
В модели пользователя
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. Тогда первая запись не будет совпадать, но две другиезаписи будут совпадать.
Как можно получить результаты в этом случае?