2012-11-01 126 views
0

我有3列的簡單表像這樣表創建過濾器

table 
    thead 
    th Element 
    th Owner 
    th Progress 
    tbody 
    == render :partial => "element_row" :collection => @elements :as => table_element 

每個元素都是唯一的,並且一個所有者可以具有幾個元件。有幾種不同類型的「進展」,例如"started""not started""completed"

我想創建幾個鏈接來過濾表。例如,我想要創建一個開始鏈接,其中當用戶單擊該鏈接時,該表將被過濾,只顯示顯示"started"的行。過濾器的另一個例子是所有者。

有沒有人有任何建議如何做到這一點?

回答

0

如果要在服務器端執行此操作,請將過濾器方法添加到使用鏈接參數過濾@elements的控制器。

如果您使用ActiveRecord的數據庫中選擇@elements,你可以這樣做:

@elements = Element.where(progress: params[:progress]) 

如果你只是要過濾在內存中@elements,你可以這樣做:

@elements = @elements.select{ |element| element.progress == params[:progress] } 
2

如果你正在尋找一個寶石來幫助你,Ransack是一個偉大的,熱門的和積極的項目搜索(和擴展,篩選 ActiveRecord數據。

如果您查看Ernie的demo site,您可以看到搜索參數如何通過GET查詢修改URL。你可以很容易地創建鏈接,如你想要的開始鏈接來模擬這些GET表單請求。