2010-02-23 2 views
1

У меня есть сайт, на котором список продуктов показан в категории show action. Я успешно разбиваю на страницы с помощью жгута will_paginate и выполняю эту работу с кешированием страниц, настраивая мои маршруты like Sean Behan does.рельсы 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

ОК, я нашел способ, чтобы получить лучшее кэширование возможного с моей установкой:

Я до сих пор использовать это решение для нумерации страниц для работы (как я красивее URL-адреса с ним). Но мне пришлось переключиться на кеширование действий, чтобы разрешить прохождение параметров сортировки в URL-адресе. Проверьте это объяснение, если вы заинтересованы: http://cobaltedge.com/rails-action-caching-with-query-parameters

Cheers,

Val

Смежные вопросы