Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Rails按计算值排序_Ruby On Rails - Fatal编程技术网

Ruby on rails 使用Rails按计算值排序

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

我目前正在使用sortable_column_headers插件按不同的列对Rails 2.3应用程序中的数据表进行排序。这非常有效,我可以在当前模型上或在关联模型上轻松地对列进行排序

但我的问题是,表中的一列是计算值(它是一列除以另一列的结果),现在我需要使它能够根据计算出的列数据进行排序。当表格显示如下时,计算完成:

<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