2010-02-23 84 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

干杯,

瓦尔