Rails范围 – 完全匹配的位置

是否可以在Rails中使用where IN (?)查询来查看范围,这将检查完全匹配?

例如:

 Post.joins(:tags).where('tags.id IN (?)', [1, 2, 3, 4]) 

会找到标签为1,2,1,2,3和1, 2post。 但是应该只找到带有1, 2, 3, 4标签的post。

要获得匹配IN子句中所有值的想法,您必须这样做:

 tag_ids = [1, 2, 3, 4] Post.joins(:tags).where('tags.id IN (?)', tags_ids).group("posts.id") .having("COUNT(posts.id) >= ?", tag_ids.length) 

我希望这对你有帮助。