课程has_many标签由has_and_belongs_to提供,现在给出标签的两个id [1,2],如何找到同时具有这两个标签的所有课程Course.joins(:tags).where("tags.id IN (?)" [1, 2])
将返回具有标记之一的记录,而不是我想要的记录
# app/models/course.rb
has_and_belongs_to_many :tags
# app/models/tag.rb
has_and_belongs_to_many :courses
3条答案
按热度按时间h79rfbju1#
由于您使用的是PostgreSQL,因此您可以使用ALL操作符来代替IN操作符,如下所示:
这应该用AND而不是OR匹配所有ID。
g6baxovj2#
这不是一个单独的请求,但是可能仍然和其他解决方案一样快,并且可以适用于任意数量的标记。
vhipe2zx3#
提到@Vapire的回答