【发布时间】:2011-05-27 03:45:21
【问题描述】:
我有一个相当简单的查询,但我似乎无法正确......
我的模特:
- 用户 - 有很多友谊(与其他用户)
- 用户 - 提交了很多内容
- 用户 - 有很多 cmets
- 用户 - 有很多投票
我需要一个代表
的计数current_user 的所有好友,其提交、cmets 或投票创建日期为 > current_user.last_refresh_date
现在,我正在通过迭代友谊并添加所有提交、评论和投票来构建一个数组。然后我在比较日期以确定计数是否应该增加的同时重新迭代这个构建的数组。不是最理想的解决方案。
编辑:
@TobiasCohen
有效的解决方案。谢谢!
跟进:
我希望在当前查询中再添加一个计数。我需要计算所有新的 cmets 和对 current_user.submissions 不属于原始计数的投票(即不是朋友)。
伪代码:
current_user.submissions.join(:cmets, :votes, :friends).where('last_activity >? ANDfriend_id != ?', current_user.last_refresh_date, current_user.id).count
我不能完全正确地得到查询(通过活动记录对复杂查询不熟悉)。
我打算将其设为单独的查询,然后将其添加到原始计数中。它可以被吸收到一个查询而不是两个吗?
【问题讨论】:
标签: ruby-on-rails activerecord join count