2011-04-04 50 views
1

我有一個HTML表格,其中顯示來自特定模型的數據,但我也在HTML表格中顯示不屬於該模型的列。這個列在一些計算之後(在這個計算中我使用了3-4個表格)。我想給該列上的排序和搜索功能。任何人都知道什麼是最好的方法來做到這一點?在模型沒有的字段上進行排序和搜索

更新時間:

主要的問題是,如果我提供排序/搜索該列那我也來從數據庫中的所有記錄計算,這將不會是個好主意。

回答

0

您可以按照您的模型:

q_new.sort! { |x, y| 
    y.creation_date <=> x.creation_date 
} 

CREATION_DATE是任何領域或模型的方法。

+0

請參閱最新的問題 – Ashish 2011-04-04 10:33:14

+0

ОК。無論如何,您必須進行一些計算和排序,並且只有兩個地方可以在客戶端或服務器上執行此操作。如果無法在不提取所有數據的情況下對客戶端上的數據進行排序 - 您需要在服務器上對數據進行排序。將新字段添加到可使用其獲取排序數據的模型。 – demas 2011-04-04 10:37:22

+0

是的......我也這麼想。 :)但尋找更好的東西 – Ashish 2011-04-04 10:39:53

0

我會在模型上創建一個虛擬資源,該模型包含Ruby代碼中的分類器。假設sum是您的虛擬財產。

def by_sum(options = {}) 
    @items = self.class.find(options) 
    @items.sort! { |a,b| a.sum <=> b.sum } 
end 

在你的控制器,你可以撥打:

Item.by_sum({:where => "'foo' = 'bar'"}) 
+0

請參閱更新後的問題 – Ashish 2011-04-04 10:32:46

1

如果您正在尋找高性能的解決方案:只需添加新的字段到您的表來存儲你的計算。

無論如何,如果不提取所有記錄,就無法解決問題。

或者您可以使用JavaScript進行搜索和排序,但前提條件是沒有多少項目。

+0

是的......我在考慮在表格中增加新的字段。 – Ashish 2011-04-04 10:55:04

+1

並且不要忘記將索引添加到此字段 – fl00r 2011-04-04 10:56:24

相關問題