2011-08-18 69 views
1

我有一個@array和一個視圖,其中列出了每個數組元素。在該列表旁邊,我想要一個鏈接,其中顯示「按等級排序」。Rails 3:通過視圖中的鏈接對數組進行排序

我知道如何通過一定的attibute

array.sort {| a, b | a[:rank] <=> b[:rank] } 

到數組排序,但我不知道我必須把視圖和控制器,所以一旦我顯示數組排序,因爲我點擊鏈接。

回答

2

通常你創建一個參數重新加載與從事適當的過濾器的頁面:

<%= link_to('Sort', :order => 'rank') %> 

然後在你的控制器,你有什麼事情,重新排序,如果需要的清單:

if (params[:order] == 'rank') 
    @array.sort_by!(&:rank) 
end 

有些插件可以使這更容易,再加上你應該在數據庫中進行排序,如果你有分頁。

+0

謝謝,這就是我需要的。只是出於好奇......究竟哪個插件?因爲我無法通過谷歌找到任何東西。 – Mexxer

+0

如果我使用任何東西,我通常會使用[searchlogic](https://github.com/binarylogic/searchlogic),但還有一些可以創建可排序的表格。這真的取決於你的具體要求。 – tadman

相關問題