如何分组并获取has_many中的计数:通过rails

时间:2015-04-07 07:00:27

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 orm

三种模式

  • 标签
  • 帖子
  • PostTags

标签通过PostTags有很多帖子

所以我需要的是获得具有最大数量的帖子的所有标签名称

2 个答案:

答案 0 :(得分:3)

以下代码应满足您的需求:

Tag
  .select('tags.name, COUNT(posts.*) AS posts_count')
  .joins(:posts)
  .order('posts_count DESC')
  .group('tags.name')
  .group_by(&:posts_count)

答案 1 :(得分:3)

就这么简单,它适用于导轨3和导轨4

Post.joins(:tags).group("tags.name").count