【发布时间】:2015-04-30 18:34:29
【问题描述】:
我有一个模型 Item,它有很多其他模型 Vote。我有一个Item 的方法,叫做vote_count:
def vote_count
self.votes.count
end
我正在打印投票最多的 10 个项目的列表:
Item.all.sort_by(&:vote_count).reverse.first(10)
此方法有效,但速度相当慢,因为服务器必须加载数据库中的每一个投票。有谁知道更有效的方法吗?
我不能只创建一个在每次创建投票时增加 1 的列,因为投票会在 7 天后使用 default_scope 软删除。
【问题讨论】:
标签: mysql sql ruby-on-rails ruby database