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. 如何使用包括在轨道上5.0活动记录
- 7. 在轨道中使用散列号创建活动记录
- 8. 轨,活动记录查询
- 9. 轨活动记录选择
- 10. 轨道记录推
- 11. 如何比较轨道活动记录查询中的空值
- 12. ReactJS如何处理轨道活动记录关联
- 13. 与表达总和活动记录轨道
- 14. 轨道4,活动记录严格的阵列,协会
- 15. 轨道4的活动记录和模型
- 16. 轨道4:活动记录验证错误的:创建
- 17. 将两个对象链接到轨道活动记录中的单个记录
- 18. 如何使用while和直到轨道上的活动记录循环?
- 19. 轨道记录错误在启动时
- 20. 轨关系查询与活动记录
- 21. 轨活动记录value_of方法
- 22. 轨活动记录的时区
- 23. 使用活动记录
- 24. 测试记录轨道3.1
- 25. 轨道更新记录
- 26. 获取使用活动记录除了一些阵列中的所有记录轨道4,5
- 27. 轨道/通过协会活动记录的has_many - 取创纪录的
- 28. 活跃的记录轨道上的条件3
- 29. 如何转换轨道的活动记录反对关键:名称JSON对
- 30. 轨道中的活动记录和ORM之间的区别是什么?
听起来像一个工作,左和加入一组和一组。你有没有尝试做一个基本的教程到SQL? – Shadow
你应该在'users'表中存储'unread_count'列来为每个用户存储'unread_count'。 – Thanh
Thanh我可以将unread_count存储在用户表中,因为我使用此Model.import方法在user_messages表中插入批量数据。 – user1969191