所以,我有一个 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
会更快吗?方法查询,如果是这样,最好的方法是什么?我知道总结一下你可以打电话的类(class)Photo.sum(...)
,但我不确定如何对单个记录上的两列执行此操作。谢谢!
最佳答案
您现在可能需要添加 Photo.order(Arel.sql('full_downloads + presentation_downloads'))
避免UnknownAttributeReference error
关于sql - rails : Order by sum of two columns,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7116772/