是否可以根据Ruby on rails活动记录中的arthimatic操作进行排序?

时间:2016-10-21 01:43:04

标签: ruby-on-rails ruby ruby-on-rails-3

我想根据Arthimatic操作的两列来订购记录。

例如:我有表格列,我必须根据其值进行艺术操作和排序。 列为math, science and total。表名为UserMark。 通常我的查询看起来像这样

UserMark.order('(math/total) desc')

这应该基于数学/总操作来订购UserMark。如何在Ruby on rails上完成?

1 个答案:

答案 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