rails will_paginate并使用页面缓存进行排序

时间:2010-02-23 18:41:38

标签: ruby-on-rails sorting caching will-paginate

我有一个网站,其中的产品列表显示在show类别的操作中。我成功地使用will_paginate gem进行了分页,并通过配置我的路由like Sean Behan does来实现页面缓存。

我很想让用户对产品进行分类。目前我在我的控制器中找到了这样的结果:

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") %> 

我的问题是我在URL中传递了?sort_by=name,这与页面缓存无关。有谁知道我怎样才能做更聪明的分类?我真的很想继续加载页面。

1 个答案:

答案 0 :(得分:2)

好的,我找到了一种方法,可以通过我的设置获得最佳缓存:

我仍然使用这个解决方案让分页工作(因为我用它获得了更漂亮的URL)。 但是我不得不切换到动作缓存以允许在URL中传递排序参数。 如果您有兴趣,请查看此说明:http://cobaltedge.com/rails-action-caching-with-query-parameters

干杯,

缬氨酸