Rails有条理地计算儿童模型

时间:2016-03-18 07:39:01

标签: ruby-on-rails ruby enumeration

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

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)

这对我怎么定义这个没有任何意义?

1 个答案:

答案 0 :(得分:2)

您可以使用此功能,例如:

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