Я использую плагин Rails 3 Will_Paginate и использую следующий учебник, чтобы узнать, как настроить ссылки на страницы:
http://thewebfellas.com/blog/2010/8/22/revisited-roll-your-own-pagination-links-with-will_paginate-and-rails-3/
Мой вопрос в том, как сделать ссылки на страницы более похожими на GMAIL, например:
1 - 100 из 25409 Более старые › Самые старые "
‹ Новые 101-200 из 25409 Старые › Самые старые "
" Новые ‹ Новые 25401 - 25409 из 25409
Спасибо
Ответ 1 · рейтинг 3 · Robert Speicher
Похоже, что эта ссылка содержит (почти) всю необходимую информацию.
"Старые" - это, по сути, "Следующая страница", поэтому вы переопределяете метод next_page в своем средстве визуализации. "Самая старая" - "Последняя страница"; вам нужно будет добавить метод, а затем убедиться, что он включен в массив, возвращаемый вашим методом pagination (здесь поможет метод total_pages, встроенный в will_paginate).
Затем сделайте обратное для Newer/Newest.
Взгляните на link_renderer.rb и link_renderer_base.rb. У них есть методы, которые вы будете переопределять.
Я написал собственный рендерер will_paginate 3 для эмуляции пагинации "Дополнительно" в стиле GitHub/Twitter. Я прокомментировал код ниже. Это не приведет вас именно туда, куда вам нужно, но это начало.
module TwitterPagination
class LinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
protected
# Tells WP how to render the "Next Page" link
def next_page
# The only difference from the default here is we renamed the link to "More"
# and added a custom class, twitter_pagination
previous_or_next_page(@collection.next_page, "More", 'twitter_pagination') if @collection.next_page
end
# Remove all links except our :next_page
def pagination
[ :next_page ]
end
end
end
Все, что мне нужно было знать для этого, можно выяснить, прочитав два исходных файла, на которые я ссылался выше.
Меня действительно поразило, как легко это было сделать; последний дизайн will_paginate великолепен в этой области.
Ответ 2 · crazycrv
Попробуйте что-то вроде
<%= will_paginate @items, :class => 'apple_pagination' %>
class также может быть digg_pagination, .flickr_pagination .
Перед этим вам необходимо загрузить и скопировать pagination.css в общедоступные таблицы/таблицы стилей.