筛选记录栏的条件

时间:2018-12-18 17:15:19

标签: ruby-on-rails scope ruby-on-rails-5 active-record-query

我有用户模型,该用户可以与多个标签关联(具有并且属于多个关联)

在用户模型中

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的标签ID为1,2,3,如果我想要没有标签1的用户的记录,那么第一个记录将不匹配,而其他两个记录将匹配。

在这种情况下如何获得结果?

0 个答案:

没有答案