我有Forum
和ForumTag
HABTM关系。我还有一个名为@tags
的变量数组。这个数组包含我用来过滤论坛的一些ForumTags的名称。我目前正在查询以获得所有论坛中包含@tags数组中所有标签的内容。
@forums = Forum.joins(:forum_tags).where(:forum_tags => {:name => @tags})
.group("forums.id").having(['COUNT(*) = ?', @tags.length])
.includes(:forum_tags).all
但是,我也希望能够找到属于返回论坛的标签,但不能在阵列中找到。类似于Stackoverflow'相关标签'列在问题页面的右侧。
例如,如果我有4个论坛:
forum A = tags are ['foo', 'bar']
forum B = tags are ['foo', 'bar', 'blah']
forum C = tags are ['foo', 'bar', 'blee']
forum D = tags are ['blah']
if @tags = ['foo','bar'], then it should return ['blah','blee']
with the count on blah=1, and count on blee=1
答案 0 :(得分:0)
where("forum_tags.name NOT IN (?)", @tags)