我想根据Arthimatic操作的两列来订购记录。
例如:我有表格列,我必须根据其值进行艺术操作和排序。
列为math, science and total
。表名为UserMark
。
通常我的查询看起来像这样
UserMark.order('(math/total) desc')
这应该基于数学/总操作来订购UserMark。如何在Ruby on rails上完成?
答案 0 :(得分:1)
你有两种可能性。
您可以在Active Record查询中进行排序。
UserMark.select("math/total as percentage").order('percentage desc')
或
你可以用ruby方法(这个方法应该在你的模型中)。
def percentage
self.math/self.total
end
def self.sort_by_percentage
UserMark.all.sort_by(&:percentage).reverse
end