这让我不知所措,我也想不通了:|
下面,@selected_posts表示对Posts的查询。我想查询在@selected_posts中有帖子的排序用户。目前,使用下面的代码,我将返回users表中所有用户的正确用户列表。我会得到Mike,5- Joe,3- John,0- Jack,0 -- 0--零表示它正在查询每个单独的用户(这将是一个问题。关于如何修复以下代码以使其仅查询在@selected_posts中有帖子的用户的任何建议
@posts = user.includes(@selected_posts).map{ |user|
[user.name, user.posts.count, user.username]
}.sort感谢任何帮助,我欠你的债(你不知道这让我有多疯狂)
发布于 2011-08-01 23:06:37
正如我所理解的,你有模型: Post和User。用户可以有许多帖子。你的目标是获得所有有帖子的用户。你可以用不同的方式来做。例如:在用户模型中定义作用域
scope :with_posts, -> { joins(:posts) }发布于 2011-08-01 23:32:32
还没有测试它,但这不是更接近于:
@users = User.joins(:posts).where(:posts => {:category => "Baseball"})只是为了完整性,因为我喜欢这样的结果:
@users = Post.where(:category => "one").group(:user).count将为您提供一个以users为键、postcount为值的OrderedHash。
https://stackoverflow.com/questions/6899833
复制相似问题