Rails:返回包含至少一个帖子的所有类别的数组?

时间:2012-06-08 03:22:19

标签: ruby-on-rails-3 activerecord associations

假设:

class Categories < ActiveRecord::Base
  has_many :posts
end

class Posts < ActiveRecord:Base
  attr_accessible :category_id

  belongs_to :category
end

如何获得包含 至少一个 相关帖子的所有类别的数组?

1 个答案:

答案 0 :(得分:2)

更好(在性能方面)解决方案是在categories表中有一个count列,在belongs_to关联声明上有:counter_cache => true(你已经查过)。

此处有更多信息:http://guides.rubyonrails.org/association_basics.html#belongs_to-counter_cache

如果您的表格相对较小,您可以查询: Category.joins(:posts).group(:category_id).having('count(category_id) >= ?', 1)