rails的问题包括查询

时间:2011-08-01 14:24:29

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

我对此感到茫然,并且无法理解我的生活:|

下面,@selected_posts表示Posts上的查询。我想查询在@selected_posts中有帖子的排序用户。目前,通过以下代码,我将返回users表中所有用户的正确用户列表。我会得到迈克,5 - 乔,3 - 约翰,0 - 杰克,0 - 零显示它正在查询每个用户(这将是一个问题。有关如何修复以下代码的任何建议它只查询在@selected_posts中有帖子的用户?

@posts = user.includes(@selected_posts).map{ |user|

  [user.name, user.posts.count, user.username]

}.sort

感谢任何帮助,我欠你的债务(你不知道这对我有多疯狂)

2 个答案:

答案 0 :(得分:2)

据我所知,你有模特:帖子和用户。用户可以有很多帖子。您的目标是让所有有帖子的用户。你可以用不同的方式做到这一点。例如:在用户模型中定义范围

scope :with_posts, -> { joins(:posts) }

答案 1 :(得分:1)

尚未对它进行过测试,但这不会更加符合以下条件:

@users = User.joins(:posts).where(:posts => {:category => "Baseball"})

只是为了完整,因为我喜欢结果:

@users = Post.where(:category => "one").group(:user).count

会给你一个OrderedHash,其中用户为关键,postcount为value。