2010-02-23 50 views
1

我有一個網站,其中的產品列表顯示在類別show行動。我成功地與will_paginate寶石分類,並通過配置我的路線like Sean Behan does使其與頁面緩存一起工作。rails will_paginate和頁面緩存排序

我很樂意讓用戶對產品進行分類。目前,我有一個發現我的控制器是這樣的:

if params[:sort_by] == "name_desc" 
    #@products = Product.find_with_index("%#{params[:search]}%", :order => 'productname desc').paginate :per_page => 15, :page => params[:page] 
    @products = Product.find_with_index('params[:search]') 
else 
    ... 
end 

在我看來,一個簡單的鏈接:

<%= link_to image_tag("down.gif"), category_path(:sort_by=>"name") %> name<%= link_to image_tag("up.gif"), category_path(:sort_by=>"name_desc") %> 

我的問題是,我通過?sort_by=name的URL,不與工作頁面緩存。有沒有人有一個想法,我怎麼做更聰明的排序?我真的很喜歡繼續和緩存頁面。

回答

2

OK,我找到了一種方法,以獲得最佳的緩存可能與我的設置:

我仍然可以使用該解決方案爲分頁的工作(我得到漂亮的網址與它)。 但我不得不切換到動作緩存以允許在URL中傳遞排序參數。 看看這個解釋,如果你有興趣:http://cobaltedge.com/rails-action-caching-with-query-parameters

乾杯,

瓦爾