Ruby on rails Rails:从中获取所有关联模型具有许多关联

Ruby on rails Rails:从中获取所有关联模型具有许多关联,ruby-on-rails,many-to-many,associations,Ruby On Rails,Many To Many,Associations,我需要从另一个关联的模型中获取所有关联的模型,我想首先在该模型上运行查询 例如,我得到了Post模型和Tag模型。我需要获得所有帖子,这些帖子与一些标签相关。 没有问题,如果我只有一个标签——只需调用“Tag.posts”,但如果我有更多标签,那么就只有一个标签——例如,我需要做一些类似于: Post.where(id: PostTag.where(tag_id: some_ids).pluck(:category_id).uniq) 我相信Rails有一个内置的解决方案。有人知道吗?我的想法

我需要从另一个关联的模型中获取所有关联的模型,我想首先在该模型上运行查询

例如,我得到了Post模型和Tag模型。我需要获得所有帖子,这些帖子与一些标签相关。 没有问题,如果我只有一个标签——只需调用“Tag.posts”,但如果我有更多标签,那么就只有一个标签——例如,我需要做一些类似于:

Post.where(id: PostTag.where(tag_id: some_ids).pluck(:category_id).uniq)
我相信Rails有一个内置的解决方案。有人知道吗?

我的想法是:

Post.joins(:post_tags).where('post_tags.tag_id' => some_ids).uniq

您可以使其成为更易于重用的范围。我认为对于这种情况没有内置的方法。

您的模型之间有什么类型的关联?根据您的示例,它看起来像一个
有很多:到
。如果我理解正确,您是否正在尝试获取与多个标记关联的所有帖子?范围可以是:
scope:from_tag_id,->(some_id){连接(:post_tags)。where('post_tags.tag_id'=>some_id)。uniq}