【发布时间】:2021-11-05 11:03:35
【问题描述】:
我有包含三个模型的 Rails 5.2 项目:
class Post
has_many :post_tags
has_many :tags, through: :post_tags
end
class PostTags
belongs_to :post
belongs_to :tag
end
class Tags
has_many :post_tags
has_many :posts, through: :post_tags
end
我有许多标签 ID 数组,例如:
array_1 = [3, 4, 5]
array_2 = [5, 6, 8]
array_3 = [9, 11, 13]
我想要一个查询,该查询将返回带有每个数组中至少一个带有 id 的标签的帖子。
例如,假设我有一个带有以下标签 ID 的帖子:
> post = Post.find(1)
> post.tag_ids
> [4, 8]
如果我使用array_1 和array_2 运行查询,它将返回此帖子。但是,如果我使用 array_1、array_2 和 array_3 运行它,它不会返回此帖子。
我尝试了以下查询:
Post.joins(:tags).where('tags.id IN (?) AND tags.id IN (?)', array_1, array_2)
但这不会返回帖子。
返回帖子的查询应该是什么?
任何帮助将不胜感激!
【问题讨论】:
标签: ruby-on-rails postgresql activerecord ruby-on-rails-5