【发布时间】:2011-10-30 07:32:25
【问题描述】:
所以,我有一个Photo 模型,可以在full_size 和presentation_size 下载。当用户下载照片时,我会在照片的 full_downloads 和 presentation_downloads 属性上进行跟踪。
这一切都很好。
有时我想知道总共有多少下载量。我有一个简单的方法,total_downloads,看起来像这样:
def total_downloads
self.full_downloads + self.presentation_downloads
end
我的问题是:我希望能够按所有这三个(完整、演示、总下载)订购照片。前两个很容易,但是如何通过两列的总和进行排序?请注意,这至少需要同时兼容 SQLite 和 PG。
一个附带的问题,将total_downloads 方法作为查询会更快吗?如果是这样,最好的写法是什么?我知道对你可以调用 Photo.sum(...) 的类进行求和,但我不确定如何对一条记录上的两列进行求和。
谢谢!
【问题讨论】:
-
您可以直接编写 SQL 还是会成为问题?
-
@Devin M - 我会做我该做的:)
标签: sql ruby-on-rails ruby-on-rails-3 activerecord sql-order-by