2010-08-27 65 views
1

我目前使用sortable_column_headers插件通過各種不同列對Rails 2.3應用程序中的數據表進行排序。這很好,我可以對當前模型的列進行排序,也可以輕鬆地在相關模型上進行排序。使用Rails按計算值排序

雖然我的問題是表中的一列是一個計算值(它是將一列除以另一列的結果),我現在需要使這個計算列數據能夠排序。顯示該表時,按如下的計算完成:

<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

我對sortable_column_headers並不熟悉,但似乎可以通過將market_cr方法從視圖幫助器移動到員工模型來實現。就像這樣,但您可能需要在視圖中稍微按摩一下才能看起來像一個百分比。如果你也在進行單元測試,這可能是一個更好的解決方案。

class Employee < ActiveRecord::Base 
    .... 

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

    .... 
end