轨道有条件地计算子模型



所以我有一个应用程序,用户有很多帖子。这些帖子可以发布或起草。我通过枚举进行了此设置,它看起来像这样:

class User < ActiveRecord::Base
  has_many :posts
end

帖子模型:

class Posts < ActiveRecord::Base
  belongs_to :user 
  enum draft_status: [:draft, :published]
end

我想设置一个控制器变量,该变量仅返回具有任何已发布作品的用户。我将如何设置这样的变量?

我试过:

@bloggers = User.all.where('posts.published.any? =', true)

那不知道我将如何定义这个?

您可以使用它,例如:

@bloggers = User.where(id: Post.published.uniq.pluck(:user_id))

最新更新