# \[rails\] will\_paginate - metodi e proprietÃ ?

**URL:** <https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928>\
**Category:** IT\
**Created:** [September 30, 2007, 2:25pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928 "2007-09-30T14:25:14Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [September 30, 2007, 2:25pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/1 "2007-09-30T14:25:14Z")

</div>

Salve! Sto dando un’occhiata al plug-in will\_paginate. Facile, funziona  
tutto. Ho visto come si pagina e anche i vari metodi paginate\_by\_+, solo  
che volevo capirci di piÃ¹: esattamente, dalla view, che metodi e che  
varialbili ho a disposizione oltre a quelli di base?  
Tipo, se voglio farmi sputare la current\_page o pages\_count, che sono  
proprietÃ del plugin (ho spulciato anche tutto il codice e visto i docs  
online), come faccio dalla view?  
Se ad esempio voglio vedere @total\_pages, Ã¨ possibile? E devo per forza  
passare dal controller?  
E il mio ipotetico @posts (= Post.paginate blabla), oltre ai find  
mascherati da paginate, eredita qualcos’altro di tutte le proprietÃ dei  
vari oggetti di paginazione standard di Rails?

Preciso che comunque sono un principiante…

Anyone? 😉

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [October 1, 2007, 6:24pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/2 "2007-10-01T18:24:39Z")

</div>

Comincio a rispondermi da solo, ma ogni aggiunta e aiuto Ã¨ assolutamente  
gradita.

Intanto il mio @posts, che in soldoni Ã¨ un’istanza di  
WillPaginate::Collection, sia nel controller sia nella view Ã¨ rifornito  
dei seguenti metodi:

page\_count \> ritorna @total\_pages

offset \> titorna il numero di entries pari alla prima-1 della pagina  
corrente. In altre parole, se ce ne sono 30 per pagina, la prima della  
pagina 2 Ã¨ la numero 31 e dunque l’offset == 30.

previous\_page \> ritorna, se c’Ã¨, @current\_page-1

next\_page \> ritorna, se c’Ã¨, @current\_page+1

* * *

Lo stesso oggetto Ã¨ rifornito delle seg. proprietÃ :

- current\_page
- per\_page
- total\_entries

Per ora Ã¨ tutto. Attendo aiuti/suggerimenti! 🙂

Luca R. wrote:

> Salve! Sto dando un’occhiata al plug-in will\_paginate. Facile, funziona  
> tutto. Ho visto come si pagina e anche i vari metodi paginate\_by\_+, solo  
> che volevo capirci di piÃ¹: esattamente, dalla view, che metodi e che  
> varialbili ho a disposizione oltre a quelli di base?  
> Tipo, se voglio farmi sputare la current\_page o pages\_count, che sono  
> proprietÃ del plugin (ho spulciato anche tutto il codice e visto i docs  
> online), come faccio dalla view?  
> Se ad esempio voglio vedere @total\_pages, Ã¨ possibile? E devo per forza  
> passare dal controller?  
> E il mio ipotetico @posts (= Post.paginate blabla), oltre ai find  
> mascherati da paginate, eredita qualcos’altro di tutte le proprietÃ dei  
> vari oggetti di paginazione standard di Rails?
> 
> Preciso che comunque sono un principiante…
> 
> Anyone? 😉

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [October 1, 2007, 7:15pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/3 "2007-10-01T19:15:59Z")

</div>

> Luca R. wrote:
> 
> > Salve! Sto dando un’occhiata al plug-in will\_paginate. Facile, funziona  
> > tutto. Ho visto come si pagina e anche i vari metodi paginate\_by\_+, solo  
> > che volevo capirci di più: esattamente, dalla view, che metodi e che  
> > varialbili ho a disposizione oltre a quelli di base?

domanda magari stupida (il plugin in questione non l’ho mai usato)

quali vantaggi da l’uso di questo plugin rispetto al paginate di default  
di  
rails?? dai metodi che hai descritto non mi sembra ci sia niente in  
più…

–  
everything has got to end sometime we were satellites drifting off into  
space  
vega 4 - burn and fade away

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [October 1, 2007, 9:02pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/4 "2007-10-01T21:02:18Z")

</div>

Beh, il metodo di default non lo conosco molto bene. Sono partito quasi  
subito col plugin perchÃ© paginate (sembra giÃ ufficiale, Ã¨ scritto anche  
nei docs:  
[Peak Obsession](http://api.rubyonrails.com/classes/ActionController/Pagination.html))  
verrÃ tolto e spostato appunto in un plug-in nella versione 2.0 di  
rails.  
Essendo che sto imparando rails, mi adeguo giÃ ed evito di perder tempo.  
Solo che di questo plugin la documentazione non Ã¨ molto prolissa, e  
presuppone che a leggerla non sia un principiante.

Non Ã¨ l’unico comunque, ce n’Ã¨ almeno un altro:

[http://paginator.rubyforge.org/](http://paginator.rubyforge.org/)

e anche questo:

> **[Welcome cardboardrocket.com - BlueHost.com](http://cardboardrocket.com/pages/paginating_find)**
>
> Bluehost - Top rated web hosting provider - Free 1 click installs For blogs, shopping carts, and more. Get a free domain name, real NON-outsourced 24/7 support, and superior speed. web hosting provider php hosting cheap web hosting, Web hosting,...

Ciao!

tarini wrote:

> > Luca R. wrote:
> > 
> > > Salve! Sto dando un’occhiata al plug-in will\_paginate. Facile, funziona  
> > > tutto. Ho visto come si pagina e anche i vari metodi paginate\_by\_+, solo  
> > > che volevo capirci di piï¿½: esattamente, dalla view, che metodi e che  
> > > varialbili ho a disposizione oltre a quelli di base?
> 
> domanda magari stupida (il plugin in questione non l’ho mai usato)
> 
> quali vantaggi da l’uso di questo plugin rispetto al paginate di default  
> di  
> rails?? dai metodi che hai descritto non mi sembra ci sia niente in  
> piï¿½…

> –  
> everything has got to end sometime we were satellites drifting off into  
> space  
> vega 4 - burn and fade away

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [October 1, 2007, 9:04pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/5 "2007-10-01T21:04:21Z")

</div>

Dimenticavo: WillPaginate, il link:  
[http://plugins.require.errtheblog.com/browser/will\_paginate](http://plugins.require.errtheblog.com/browser/will_paginate)

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [October 1, 2007, 9:41pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/6 "2007-10-01T21:41:29Z")

</div>

tarini ha scritto:

> quali vantaggi da l’uso di questo plugin rispetto al paginate di default di  
> rails?? dai metodi che hai descritto non mi sembra ci sia niente in più…

Il paginate di default è deprecato e non più contenuto nella imminente  
versione 2.0.  
Per maggiori dettagli:

[http://dev.rubyonrails.org/ticket/8157](http://dev.rubyonrails.org/ticket/8157)  
[http://dev.rubyonrails.org/changeset/6992](http://dev.rubyonrails.org/changeset/6992)  
[http://dev.rubyonrails.org/changeset/6993](http://dev.rubyonrails.org/changeset/6993)

–  
blog: [www.lucaguidi.com](http://www.lucaguidi.com)

Bringing Rails to Italy  
First italian Ruby On Rails conference:  
Oct, 26-27 2007 - Pisa  
[www.railstoitaly.org](http://www.railstoitaly.org)

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [October 1, 2007, 10:21pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/7 "2007-10-01T22:21:34Z")

</div>

Altra piccola scoperta: paginate non Ã¨ altro che un find un po’ furbo, e  
di conseguenza mantiene anche un po’ delle sue caratteristiche:

Modo standard:  
@entries = Entry.paginate :page =\> params[:page], :per\_page =\> 10

Supporta le opzioni di find, come :order  
@entries = Entry.paginate :page =\> params[:page], :per\_page =\> 10,  
:order =\> “title DESC”

supporta i finders dinamici:  
@entries = Entry.paginate\_by\_title ‘titolo 2’, :page =\> params[:page],  
:per\_page =\> 10

Nota: copio incollo dal mio codice. @entries sono quelli che prima  
chiamavo genericamente @posts.

Per ora Ã¨ tutto.

> Comincio a rispondermi da solo, ma ogni aggiunta e aiuto Ã¨ assolutamente  
> gradita.
> 
> Intanto il mio @posts, che in soldoni Ã¨ un’istanza di  
> WillPaginate::Collection, sia nel controller sia nella view Ã¨ rifornito  
> dei seguenti metodi:
> 
> page\_count \> ritorna @total\_pages
> 
> offset \> titorna il numero di entries pari alla prima-1 della pagina  
> corrente. In altre parole, se ce ne sono 30 per pagina, la prima della  
> pagina 2 Ã¨ la numero 31 e dunque l’offset == 30.
> 
> previous\_page \> ritorna, se c’Ã¨, @current\_page-1
> 
> next\_page \> ritorna, se c’Ã¨, @current\_page+1
> 
> * * *
> 
> Lo stesso oggetto Ã¨ rifornito delle seg. proprietÃ :
> 
> - current\_page
> - per\_page
> - total\_entries
> 
> Per ora Ã¨ tutto. Attendo aiuti/suggerimenti! 🙂

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [November 29, 2007, 10:20am UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/8 "2007-11-29T10:20:47Z")

</div>

Scusa la domanda, magari è stupida, ma perché stai facendo un join?  
Non basta un has\_many/has\_one con relativo belongs\_to nel modello?

Il giorno 29/nov/07, alle ore 10:07, Cosimo G. ha scritto:

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [November 29, 2007, 10:07am UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/9 "2007-11-29T10:07:44Z")

</div>

> Supporta le opzioni di find, come :order  
> @entries = Entry.paginate :page =\> params[:page], :per\_page =\> 10,  
> :order =\> “title DESC”

Ciao,  
leggevo i tuoi commenti perchÃ© nell’usare il plugin non riesco ad  
utilizzare una di queste opzioni.  
Il problema sussiste quando aggiungo l’opzione :joins al paginate che ho  
inserito nel model( sto usando Rails ).

Ecco il codice:  
paginate :page =\> page,  
:conditions =\> condition, :per\_page =\> 10,  
:joins =\> "inner join Fornitore on Fornitore.CodiceFornitore =  
ListinoProdotto.CodiceFornitore ",  
:order =\> sort

senza il join ovviamente non ottengo le informazioni desiderate.  
La cosa sconcertante Ã¨ che l’errore restituito non mi aiuta a trovare  
una soluzione:

```
DBI::DatabaseError in ListinoprodottoController#confezionamento

```

37000 (8156) [Microsoft][ODBC SQL Server Driver][SQL Server]La colonna  
‘CodiceFornitore’ ï¿½ stata specificata piï¿½ volte per ‘tally’.

RAILS\_ROOT: ./script/…/config/…  
Application Trace | Framework Trace | Full Trace

e:/ruby/lib/ruby/site\_ruby/1.8/DBD/ODBC/ODBC.rb:168:in `execute' e:/ruby/lib/ruby/site_ruby/1.8/dbi/dbi.rb:640:in`execute’  
e:/ruby/lib/ruby/site\_ruby/1.8/dbi/dbi.rb:671:in `select_all' e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/sqlserver_adapter.rb:366:in`add\_limit\_offset!’  
e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/base.rb:1139:in  
`add_limit!' e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1101:in`construct\_finder\_sql’  
e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/base.rb:997:in  
`find_every' e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:418:in`find’  
#{RAILS\_ROOT}/vendor/plugins/will\_paginate/lib/will\_paginate/finder.rb:106:in  
`send' #{RAILS_ROOT}/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:106:in`method\_missing’  
#{RAILS\_ROOT}/vendor/plugins/will\_paginate/lib/will\_paginate/collection.rb:52:in  
`create' #{RAILS_ROOT}/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:104:in`method\_missing’  
#{RAILS\_ROOT}/app/models/listinoprodotto.rb:10:in  
`display_product_quantity' #{RAILS_ROOT}/app/controllers/listinoprodotto_controller.rb:49:in`confezionamento’  
-e:4:in `load’  
-e:4

Viene presentato come un errore del Database ma se eseguita in console  
la query funziona.

Vorrei anche riportare il bug ma prima devo capire dove nasce il  
problema.  
Spero mi lasciate il vostro aiuto.  
Grazie.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [December 4, 2007, 12:15pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/10 "2007-12-04T12:15:48Z")

</div>

Giovanni I. wrote:

> Scusa la domanda, magari ï¿½ stupida, ma perchï¿½ stai facendo un join?  
> Non basta un has\_many/has\_one con relativo belongs\_to nel modello?
> 
> Il giorno 29/nov/07, alle ore 10:07, Cosimo G. ha scritto:

Ciao Giovanni,  
in realtÃ il problema Ã¨:  
come faccio ad ordinare la tabella alfabeticamente ma in base al campo  
della tabella belongs\_to( cui appartiene ) ?

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [December 4, 2007, 12:35pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/11 "2007-12-04T12:35:49Z")

</div>

Model.find :all, :includes =\> :associated\_model, :order =\>  
‘tabellachetiinteressa\_campo ASC’

Le mail ti raggiungono ovunque con BlackBerryÂ® from Vodafone!

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [December 4, 2007, 4:27pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/12 "2007-12-04T16:27:20Z")

</div>

Grazie Giovanni,  
funziona anche con will\_paginate :-)))

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [November 29, 2007, 10:28am UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/13 "2007-11-29T10:28:22Z")

</div>

Ciao Cosimo,

purtroppo io sono ancora un principiante in termini di db, vengo da 10  
anni di client-side e mi sto affacciano solo ora al lato server, quindi  
quando mi parli di join, so cosa vuoi dire ma non ho idea dei motivi del  
baco…

Se posso darti un consiglio perÃ², se te la cavi un po’ con l’inglese,  
dopo pranzo quando di lÃ si svegliano, fai un giro nel forum ufficiale  
di rails.  
Senza nulla togliere al nostro, di la normalmente sono di + e c’Ã¨ +  
gente che ti risponde e di solito in fretta.

[http://www.ruby-forum.com/forum/3](http://www.ruby-forum.com/forum/3)

Hola! 🙂

Cosimo G. wrote:

> > Supporta le opzioni di find, come :order  
> > @entries = Entry.paginate :page =\> params[:page], :per\_page =\> 10,  
> > :order =\> “title DESC”
> 
> Ciao,  
> leggevo i tuoi commenti perchÃ© nell’usare il plugin non riesco ad  
> utilizzare una di queste opzioni.  
> Il problema sussiste quando aggiungo l’opzione :joins al paginate che ho  
> inserito nel model( sto usando Rails ).
> 
> Ecco il codice:  
> paginate :page =\> page,  
> :conditions =\> condition, :per\_page =\> 10,  
> :joins =\> "inner join Fornitore on Fornitore.CodiceFornitore =  
> ListinoProdotto.CodiceFornitore ",  
> :order =\> sort
> 
> senza il join ovviamente non ottengo le informazioni desiderate.  
> La cosa sconcertante Ã¨ che l’errore restituito non mi aiuta a trovare  
> una soluzione:
> 
> ```
> DBI::DatabaseError in ListinoprodottoController#confezionamento
> 
> ```
> 
> 37000 (8156) [Microsoft][ODBC SQL Server Driver][SQL Server]La colonna  
> ‘CodiceFornitore’ ï¿½ stata specificata piï¿½ volte per ‘tally’.
> 
> RAILS\_ROOT: ./script/…/config/…  
> Application Trace | Framework Trace | Full Trace
> 
> e:/ruby/lib/ruby/site\_ruby/1.8/DBD/ODBC/ODBC.rb:168:in `execute' e:/ruby/lib/ruby/site_ruby/1.8/dbi/dbi.rb:640:in `execute’  
> e:/ruby/lib/ruby/site\_ruby/1.8/dbi/dbi.rb:671:in `select_all' e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/connection_adapters/sqlserver_adapter.rb:366:in `add\_limit\_offset!’  
> e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/base.rb:1139:in  
> `add_limit!' e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1101:in `construct\_finder\_sql’  
> e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active\_record/base.rb:997:in  
> `find_every' e:/ruby/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:418:in `find’  
> #{RAILS\_ROOT}/vendor/plugins/will\_paginate/lib/will\_paginate/finder.rb:106:in  
> `send' #{RAILS_ROOT}/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:106:in `method\_missing’  
> #{RAILS\_ROOT}/vendor/plugins/will\_paginate/lib/will\_paginate/collection.rb:52:in  
> `create' #{RAILS_ROOT}/vendor/plugins/will_paginate/lib/will_paginate/finder.rb:104:in `method\_missing’  
> #{RAILS\_ROOT}/app/models/listinoprodotto.rb:10:in  
> `display_product_quantity' #{RAILS_ROOT}/app/controllers/listinoprodotto_controller.rb:49:in `confezionamento’  
> -e:4:in `load’  
> -e:4
> 
> Viene presentato come un errore del Database ma se eseguita in console  
> la query funziona.
> 
> Vorrei anche riportare il bug ma prima devo capire dove nasce il  
> problema.  
> Spero mi lasciate il vostro aiuto.  
> Grazie.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [April 21, 2008, 10:11am UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/14 "2008-04-21T10:11:50Z")

</div>

Riesumo la discussione per chiedervi che plugin usate voi per fare la  
paginazione, quelli che mi piacciono di piÃ¹ sono questi due:

> **[Welcome cardboardrocket.com - BlueHost.com](http://cardboardrocket.com/pages/paginating_find)**
>
> Bluehost - Top rated web hosting provider - Free 1 click installs For blogs, shopping carts, and more. Get a free domain name, real NON-outsourced 24/7 support, and superior speed. web hosting provider php hosting cheap web hosting, Web hosting,...

[http://mislav.caboo.se/rails/will\_paginate-love/](http://mislav.caboo.se/rails/will_paginate-love/)

di [cardboardrocket.com](http://cardboardrocket.com) mi piace il fatto che utilizza il classico find e  
gli passa i parametri per fare la paginazione es.

# @cogs = Cog.find(:all,

# :page =\> {:size =\> 10,

# :current =\> params[:page]})

will\_paginate sembra abbia piÃ¹ fans e fornisce funzionalitÃ aggiuntive  
come il named\_scope

Non saprei su cosa puntare, mi piacerebbe sapere la vostra opinione.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [December 4, 2007, 4:38pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/15 "2007-12-04T16:38:54Z")

</div>

Np, basta chiedere 🙂

Il giorno 04/dic/07, alle ore 16:27, Cosimo G. ha scritto:

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [April 21, 2008, 11:34am UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/16 "2008-04-21T11:34:27Z")

</div>

Devo precisare che li vorrei usare con richieste ajax, will\_paginate Ã¨  
molto comodo perchÃ¨ crea in automatico nella vista anche la gestione  
della paginazione ma purtroppo non Ã¨ in ajax, anche se lo fosse credo  
sarebbe difficile gestire casi specifici o mi sbaglio?  
Esempio un form con un button il cui click riempie una div. Ora dovrei  
fare che il link della paginazione effettuasse altre chiamate ajax con i  
parametri del form. Lo farei semplicemente agganciando il tag a con  
prototype e passando il numero della pagina come parametro.  
La domanda Ã¨ sempre la stessa, qualcuno ha giÃ fatto qualcosa del  
genere?

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [April 21, 2008, 2:39pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/17 "2008-04-21T14:39:35Z")

</div>

On Mon, Apr 21, 2008 at 2:26 PM, Luca G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Event.addBehavior.reassignAfterAjax = true;  
> Event.addBehavior({  
> ‘div.pagination a’ : Remote.Link  
> });

Io di solito faccio una cosa del genere anche con prototype riassegnando  
l’observer dopo la chiamata ajax.Avevo messo qui un esempio:

[http://gravityblast.com/2008/03/25/will\_paginate-with-ajax-and-unobtrusive-javascript/](http://gravityblast.com/2008/03/25/will_paginate-with-ajax-and-unobtrusive-javascript/)

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [April 21, 2008, 2:27pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/18 "2008-04-21T14:27:03Z")

</div>

Ciao Marco,  
Io ho risolto il problema in questo modo:

app/controllers/sources\_controller.rb:  
class SourcesController \< ApplicationController  
def index  
@sources = Source.paginate :page =\> params[:page], :per\_page =\> 10

```
 respond_to do |format|
   format.html # index.html.erb
   format.js do
     render :update do |page|
       page.replace_html 'sources', :partial => 'sources'
     end
   end
 end

```

end  
end

app/views/sources/index.html.erb:

# Sources

 \<%= render :partial =\> 'sources' %\>

app/views/sources/\_sources.html.erb:

\<%= will\_paginate @sources %\>

Poi, scarica LowPro, copialo in public/javascripts ed includilo nel tag  
head.  
Crea un file sources.js e scrivi:

Event.addBehavior.reassignAfterAjax = true;  
Event.addBehavior({  
‘div.pagination a’ : Remote.Link  
});

Fatto! In questo modo se javascript è attivo, i link contenuti nel div  
con class pagination, verranno trasformati in Remote.Link, ovvero il  
loro ‘onclick’ effettuerà chiamate AJAX. Se javascript è disabilitato,  
LowPro non riuscirà in questa operazione, quindi i link si comporteranno  
in modo classico, passando il numero di pagina come parametro della get  
request.  
ES: /sources?p=1

Luca

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [April 21, 2008, 2:47pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/19 "2008-04-21T14:47:51Z")

</div>

Si, è equivalente, solo che nel mio caso è LowPro a fare il lavoro sporco.

---

<div class="post-metadata">

**Author:** ![stratboy](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/838e76/32.png) [@stratboy](https://www.ruby-forum.com/u/stratboy)\
**Post date:** [April 21, 2008, 5:22pm UTC](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928/20 "2008-04-21T17:22:31Z")

</div>

Grazie Luca e grazie anche ad Andrea.  
Uso giÃ Lowpro ma quello che dici l’ho capito solo in parte, l’avevo  
letto anche quÃ :  
[http://railsontherun.com/2007/9/27/ajax-pagination-in-less-than-5-minutes](http://railsontherun.com/2007/9/27/ajax-pagination-in-less-than-5-minutes)

nel frattempo che lavoravo ho risolto con un sistema ibribo ma mi  
piacerebbe capire quello che mi hai descritto.

Nel controller ho:

@pippo = Pippo.paginate(:all, :page=\>(params[:page]||1),  
:conditions=\>[“datains \>= ? and datains \<=  
?”,params[:ricerca][:data\_da],params[:ricerca][:data\_a] ] )

questo Ã¨ il javascript che acchiappa i tag “a”, nel layout:

Event.addBehavior.reassignAfterAjax = true;  
Event.addBehavior({  
\<%= yield :extend\_behavior\_js %\>  
});

e nella view:

\<% content\_for :extend\_behavior\_js do -%\>  
//-- pagination  
‘div.pagination a:click’ : function(e) {  
var div\_dest = ‘inq\_result’  
new Ajax.Updater(  
div\_dest,  
this.href,  
{  
asynchronous:true,  
evalScripts:true,  
onLoading:function(){  
$(div\_dest).innerHTML=‘ ![]()’;  
},  
parameters:Form.serialize($(‘frm\_inquiry’)) + ‘&authenticity\_token=’ +  
encodeURIComponent(‘217195cdb07d8deabe70098cf5189c20613a0fe5’)  
}  
);  
return false;  
}  
\<% end -%\>

Tralasciando il sistema per personalizzare la Event.addBehavior, questo  
Ã¨ il mio sistema “ibrido” e devo dire che funziona

Quello che non ho capito Ã¨ questo codice:  
respond\_to do |format|  
format.html # index.html.erb  
format.js do  
render :update do |page|  
page.replace\_html ‘sources’, :partial =\> ‘sources’  
end  
end  
end

e neanche questo:  
‘div.pagination a’ : Remote.Link

Remote.Link lo devo sostituire col mio href?

[Next page](https://www.ruby-forum.com/t/rails-will-paginate-metodi-e-proprieta/115928.md?page=2)
