检索所有' has_many'由ruby中的一个实例过滤的相关对象

时间:2017-01-11 14:51:21

标签: ruby-on-rails ruby activerecord

我有两个ActiveRecords用户和帖子:

class User < ActiveRecord::Base
  has_many :post
end

class Post < MyBase
  belongs_to :user
end

我试图获取所有用户的列表,并所有他们的帖子。 但是,在运行以下代码时,我会收到包含ID为1或2但仅包含这些帖子的帖子的用户。我希望这些用户拥有所有帖子。 任何想法如何做到这一点?

users = User.sorted.references([:posts]).includes([:posts]).where('posts.id=1' OR posts.id=2).all

1 个答案:

答案 0 :(得分:1)

这是一种方法,首先获取id为1或2的帖子的用户id,然后获取所有这些用户。当然还有其他方法,但这至少应该适合你。

user_ids = Post.where('id = 1 OR id = 2').pluck(:user_id)
users = User.where(id: user_ids)