0
Q
使用活动记录轨道
A
回答
1
你可以做这样的事情:
users = User.where(id: ids).includes(:user_messages)
users.each do |user|
unread_count = user.user_messages.where(:folder => user.inbox_id, :read => false).count
puts "UserID #{user.id} ---- Unread Message count #{unread_count}"
end
既然你渴望装载user_messages
,也不会触发回路内的任何其他数据库查询。只有1个查询来获取用户和它的user_messages。
或者,你可以这样做:
user_messages = UserMessage.joins(:user).where('folder = users.inbox_id AND read = false').group(:user_id).count
# user_messages = {1=>10, 2=>19}
# Here keys are user ids and values are no of user_messages for that user
user_messages.each do |user_id,unread_msg_count|
puts "UserID #{user_id} ---- Unread Message count #{unread_msg_count}"
end
PS:我没有测试过任何代码,请,如果您有任何意见的任何错误。我在这里假设你想放一个用户ID并根据它修改我的代码puts "UserID #{ids}
,因为在你的代码中它会打印所有的ids ids
。
相关问题
- 1. 取从活动记录轨道
- 2. 轨道活动记录关系排序
- 3. 轨道中的活动记录
- 4. 调试轨道活动记录查询
- 5. 轨道人造活动记录
- 6. 在轨道中使用散列号创建活动记录
- 7. 如何使用包括在轨道上5.0活动记录
- 8. 轨,活动记录查询
- 9. 轨活动记录选择
- 10. 轨道记录推
- 11. 轨道4:活动记录收集的循环或迭代
- 12. 的读取与轨道的活动记录第二级模型
- 13. 轨道4:活动记录验证错误的:创建
- 14. N + 1与轨道关系与活动记录?
- 15. 轨道4的活动记录和模型
- 16. ReactJS如何处理轨道活动记录关联
- 17. 轮胎轨道活动记录模型省略了一些列
- 18. 模型协会澄清轨道活动记录
- 19. 如何比较轨道活动记录查询中的空值
- 20. 与表达总和活动记录轨道
- 21. 轨道/活动记录找到加盟,限制和抵消
- 22. 轨道4,活动记录严格的阵列,协会
- 23. 问题与轨道活动记录查询与JSON参数
- 24. 将两个对象链接到轨道活动记录中的单个记录
- 25. 如何从轨道中的活动记录结果数组中删除记录?
- 26. 如何使用while和直到轨道上的活动记录循环?
- 27. 轨道记录错误在启动时
- 28. 轨活动记录关联SQL行为
- 29. 轨关系查询与活动记录
- 30. 轨活动记录的时区
听起来像一个工作,左和加入一组和一组。你有没有尝试做一个基本的教程到SQL? – Shadow
你应该在'users'表中存储'unread_count'列来为每个用户存储'unread_count'。 – Thanh
Thanh我可以将unread_count存储在用户表中,因为我使用此Model.import方法在user_messages表中插入批量数据。 – user1969191