rails will_paginate и сортировка с кэшированием страниц - PullRequest
1 голос
/ 23 февраля 2010

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

1 Ответ

2 голосов
/ 24 февраля 2010

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

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

Приветствия

Val

...