使用Rails按计算值排序

时间:2010-08-27 09:52:07

标签: ruby-on-rails

我目前正在使用sortable_column_headers插件通过各种不同的列对Rails 2.3应用程序中的数据表进行排序。这很好用,我可以在当前模型上对列进行排序,也可以在相关模型上轻松排序。

我的问题是,表中的一列是计算值(它是将一列与另一列相除的结果),现在我需要按此计算列数据进行排序。表格显示如下:

<td><%= market_cr(employee.salary_annual,employee.payscale.market_midpoint) %></td>

而market_cr是:

def market_cr(current_salary,market_mp)
number_to_percentage((current_salary/market_mp)*100, :precision => 1)

如何使这个专栏按照我对其他人的方式进行排序,例如:

<th><%= link_to 'Market CR', sort_param('listing', :model => Employee, :field => 'market_cr'), :id => 'market_cr' %></th>

谢谢!

1 个答案:

答案 0 :(得分:-1)

我不熟悉sortable_column_headers,但似乎可以通过将market_cr方法从视图助手移动到员工模型来实现。这样的东西,但你可能需要在视图中再按一下它,使它看起来像一个百分比。如果您也在进行单元测试,这可能是更好的解决方案。

class Employee < ActiveRecord::Base
  ....

  def market_cr
   ((salary_annual/payscale.market_midpoint)*100).round(1)
  end

  ....
end