Tips: Paginazione multipla con will_paginate

By | 11 agosto 2011

Will Paginate è la gemma più utilizzata per la paginazione in Ruby on Rails.

Succede a volte di dover paginare più liste diverse su una stessa pagina.

Questo tip mostra come è possibile visualizzare una lista paginata di prodotti ed una lista paginata di servizi su una stessa pagina utilizzando will_paginate.
Il punto chiave sta nell’utilizzare un parametro param_name personalizzato sia nella view che nel controller.

Il codice della view sarà qualcosa di simile a questo:

1
2
3
4
5
6
7
<br />
# ...<br />
# la lista di prodotti va qui<br />
  <%= will_paginate @products, :param_name => 'products_page', :prev_label => t('helpers.labels.previous'), :next_label => t('helpers.labels.next') %></p>
<p># la lista di servizi va qui<br />
  <%= will_paginate @services, :param_name => 'services_page', :prev_label => t('helpers.labels.previous'), :next_label => t('helpers.labels.next') %><br />
# ...<br />

E questo invece sarà il codice del controller:

1
2
3
4
5
6
7
<br />
# ...<br />
  def index<br />
    @products = current_company.products.paginate(:page => params[:products_page], :per_page => 10)<br />
    @services = current_company.products.paginate(:page => params[:services_page], :per_page => 10)<br />
  end<br />
# ...<br />

Category: Tips Tag:, , , ,

About Claudio

Claudio Marai is a co-founder of DevInterface.

After graduating in Computer Science has contributed to develop complex web applications based on Java/J2EE and desktop applications with the. NET framework for the Ministry of Justice and ultimately for the banking ambit.

The passion for web in recent years has led him to be interested in more modern frameworks such as Ruby on Rails and Django, and to a development approach based on agile methodologies such as eXtreme Programming and SCRUM.

5 thoughts on “Tips: Paginazione multipla con will_paginate

  1. Claudio Post author

    Hi Mislav,
    thanks for your clarification!

    Nice to see you on our blog. :-)

  2. Aj Banda

    wow thanks for this.. I was using will_paginate for sometime but this would be my first time on using multiple pagination in one page… ^_^

  3. Pascal Gautherot

    Yes, it works !
    But, when I paginate in tab 2, it flip to tab 1.
    Have you got an issue ?

Lascia un Commento

Your email address will not be published. Required fields are marked *