Ruby on rails 使用Rails按计算值排序
我目前正在使用sortable_column_headers插件按不同的列对Rails 2.3应用程序中的数据表进行排序。这非常有效,我可以在当前模型上或在关联模型上轻松地对列进行排序 但我的问题是,表中的一列是计算值(它是一列除以另一列的结果),现在我需要使它能够根据计算出的列数据进行排序。当表格显示如下时,计算完成:Ruby on rails 使用Rails按计算值排序,ruby-on-rails,Ruby On Rails,我目前正在使用sortable_column_headers插件按不同的列对Rails 2.3应用程序中的数据表进行排序。这非常有效,我可以在当前模型上或在关联模型上轻松地对列进行排序 但我的问题是,表中的一列是计算值(它是一列除以另一列的结果),现在我需要使它能够根据计算出的列数据进行排序。当表格显示如下时,计算完成: <td><%= market_cr(employee.salary_annual,employee.payscale.market_midpoint) %&g
<td><%= market_cr(employee.salary_annual,employee.payscale.market_midpoint) %></td>
结束
如何使此列与其他列一样可排序,例如:
<th><%= link_to 'Market CR', sort_param('listing', :model => Employee, :field => 'market_cr'), :id => 'market_cr' %></th>
Employee,:field=>'market\u cr'),:id=>'market\u cr'>
谢谢 我不熟悉可排序的列标题,但这似乎可以通过将market\u cr方法从视图助手移动到employee模型来实现。类似这样的东西,但您可能需要在视图中对其进行更多的按摩,使其看起来像一个百分比。如果您也在进行单元测试,这可能是一个更好的解决方案
class Employee < ActiveRecord::Base
....
def market_cr
((salary_annual/payscale.market_midpoint)*100).round(1)
end
....
end
class Employee
class Employee < ActiveRecord::Base
....
def market_cr
((salary_annual/payscale.market_midpoint)*100).round(1)
end
....
end