2010-02-09 67 views
3

我有一個索引操作,我希望用戶能夠通過單擊同一頁上的「過濾器鏈接」來過濾索引頁上的結果。rails寧靜過濾

有一個不錯的railcasts視頻,允許您通過在搜索框中鍵入來過濾結果。

我想根據用戶點擊的鏈接過濾結果。我怎樣才能做到這一點?有沒有一種方法可以使用link_to將params傳遞給控制器​​?

例如,列出書籍的索引頁,我想顯示以下鏈接

<%= link_to "Fiction", books_path %> 

,然後點擊該鏈接將只顯示在小說類書籍。

回答

1

看看在link_to節「的link_to也可以產生與錨或查詢字符串鏈接:」

所以你例子看起來像(假設「類別」過濾器):

<%= link_to "Fiction", books_path(:category => "fiction") %> 
+0

我試過這個,但我似乎無法訪問控制器中的params [:category]。 params [:category] ​​.inspect returns nil – Maulin 2010-02-09 13:22:27

+0

oops ...更新了代碼示例。該類別被傳遞到books_path。您應該以「/ books?category = fiction」的形式看到包含「category = fiction」的生成鏈接。 – marklai 2010-02-09 21:25:27

+0

這工作,正確的語法是這樣的 <%= link_to「小說」,books_path(:category =>「小說)%> 現在參數[:類別]將在控制器中可用 謝謝! – Maulin 2010-02-09 22:49:50