czwartek, 31 marca 2011

Stronicowanie w Ruby on Rails - najpopularniejsze opcje

Mowa oczywiście o pluginie do Ruby on Rails o nazwie will_paginate.

Aby go zainstalować z konsoli zawołaj:
gem install will_paginate
potem do
/config/environment.rb
wpisz
config.gem 'will_paginate', :version => '~> 2.3.15'
przy czym uwaga! :version => '~> 2.3.15' nie tyczy się wersji rails, tylko wersji tego plugina!

Opcje wyświetlania:
  • :previous_label — domyślnie: "« Previous", nazwa linka do poprzedniej strony
  • :next_label — domyślnie: "Next »" , nazwa linka do następnej strony
  • :page_links — kiedy jest to false, tylko poprzedni/następny link jest renderowany (domyślnie: true)
  • :inner_window — mówi ile linków widnieje przed i za aktualną stroną (domyślnie: 4)
  • :outer_window — mówi ile linków widnieje dookoła pierwszej i ostatniej strony (domyślnie: 1)
  • :separator — string reprezentujący separator oddzielający numerki stron (domyślnie: pojedyncza spacja) 
Na przykład:
<%= will_paginate @customers, :previous_label => "wstecz", :next_label => "dalej" %>


Opcje HTML:
  • :class — nazwa klasy CSS dla wygenerowanego DIV'a (domyślnie: "pagination")
  • :container — przełącza renderowanie dla podanego wcześniej DIV'a. Ustaw na false tylko w przypadku stosowanie własnych rozwiązań (domyślnie: true)
  • :id — HTML ID dla kontenera z linkami  (domyślnie: nil). Ustaw true dla automatycznego rozpoznawania ID z nazwy klasy obiektów kolekcji. Na przykład jeśli stronicujesz model ArticleComment to automatycznie zostanie nadany ID "article_comments_pagination". 
Opcje zaawansowane:
  • :param_name — nazwa parametru zawartego w URL  (domyślnie:page)
  • :params — dodatkowe parametry przy generowaniu stronicowania (na przykład :controller => "foo", :action => nil)
  • :renderer — nazwa klasy, klasa lub instancja klasy dla renderowanych linków (domyślnie: WillPaginate::LinkRenderer)
Wszystkie opcje rozpoznawane przez will_paginate stają się automatycznie opcjami kontenera DIV. Na przykład:
<%= will_paginate @posts, :style => 'font-size: small' %>
… staje się po renderowaniu:
<div class="pagination" style="font-size: small"> ... </div>



Pełna dokumentacja na naszej stronie poświęconej dokumentacji API will_paginate.


Brak komentarzy:

Prześlij komentarz