我对此感到茫然,并且无法理解我的生活:|
下面,@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
感谢任何帮助,我欠你的债务(你不知道这对我有多疯狂)
答案 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。