Как настроить will_pagination?

Я использую will_pagination с ruby ​​1.8.7 и rails 2.3.8 и получаю ссылку на разбивку на страницы, например,

      << previous  1 2 3 4 5 6 7 8 9 ... 66 67 next >> and 
      << previous 1 2 ... 30 31 32 33 34 35 36 37 38 39 ... 66 67 next >>

Помогите мне, как представить ссылку на страницу, как показано ниже,

      << previous 1 2 3 4 5 ... 66 67 next >> (or)
      << previous 1 2 ... 30 31 ... 66 67 next >>

Хотите настроить ссылки на страницы, здесь я хотел бы добавить зазор css после страницы 5 вместо страницы 9. Возможно ли это?


person prabu    schedule 06.08.2011    source источник


Ответы (1)


Вы можете написать свой собственный LinkRenderer и передать его как параметр renderer:

will_paginate(@items, :renderer => My:LinkRenderer)

Взгляните на LinkRendererBase и LinkRenderer, чтобы увидеть, как работает средство визуализации по умолчанию.

Обновление: на самом деле вам не нужно создавать собственный модуль визуализации, чтобы достичь того, чего вы хотите. Настройте WillPaginate как:

WillPaginate::ViewHelpers.pagination_options[:inner_window] = 2
WillPaginate::ViewHelpers.pagination_options[:outer_window] = 1

И он отобразит панель разбивки на страницы так, как вы этого хотите. Вы можете добавить инициализацию в файл инициализатора в папке config/initializers.

person βξhrαng    schedule 06.08.2011
comment
Привет, спасибо, я добавил файл pagination_list_link_renderer.rb в папку lib/ и изменил страницу просмотра ‹%= will_paginate(@results, :renderer =›PaginationListLinkRenderer ,:inner_window=›2,:outer_window=›2, :params= ›{search=› params[:search]}) %›. Но по-прежнему никаких изменений. не могли бы вы мне помочь? - person prabu; 06.08.2011
comment
Благодарю вас! его разбиение на страницы, например ‹‹ 1 2 ... 3 4 5 ... 66 67 ››, когда я дал :outer_window=›1 и :inner_window=›1 в файле инициализатора. - person prabu; 08.08.2011