Show More
Commit Description:
also shows users in all (without pagination)
Commit Description:
also shows users in all (without pagination)
References:
File last commit:
Show/Diff file:
Action:
vendor/plugins/will_paginate/README.rdoc
| 107 lines
| 3.7 KiB
| text/plain
| TextLexer
|
|
r299 | = WillPaginate | ||
Pagination is just limiting the number of records displayed. Why should you let | ||||
it get in your way while developing, then? This plugin makes magic happen. Did | ||||
you ever want to be able to do just this on a model: | ||||
Post.paginate :page => 1, :order => 'created_at DESC' | ||||
... and then render the page links with a single view helper? Well, now you | ||||
can. | ||||
Some resources to get you started: | ||||
* {Installation instructions}[http://github.com/mislav/will_paginate/wikis/installation] | ||||
on {the wiki}[http://github.com/mislav/will_paginate/wikis] | ||||
* Your mind reels with questions? Join our | ||||
{Google group}[http://groups.google.com/group/will_paginate]. | ||||
* {How to report bugs}[http://github.com/mislav/will_paginate/wikis/report-bugs] | ||||
== Example usage | ||||
Use a paginate finder in the controller: | ||||
@posts = Post.paginate_by_board_id @board.id, :page => params[:page], :order => 'updated_at DESC' | ||||
Yeah, +paginate+ works just like +find+ -- it just doesn't fetch all the | ||||
records. Don't forget to tell it which page you want, or it will complain! | ||||
Read more on WillPaginate::Finder::ClassMethods. | ||||
Render the posts in your view like you would normally do. When you need to render | ||||
pagination, just stick this in: | ||||
<%= will_paginate @posts %> | ||||
You're done. (You can find the option list at WillPaginate::ViewHelpers.) | ||||
How does it know how much items to fetch per page? It asks your model by calling | ||||
its <tt>per_page</tt> class method. You can define it like this: | ||||
class Post < ActiveRecord::Base | ||||
cattr_reader :per_page | ||||
@@per_page = 50 | ||||
end | ||||
... or like this: | ||||
class Post < ActiveRecord::Base | ||||
def self.per_page | ||||
50 | ||||
end | ||||
end | ||||
... or don't worry about it at all. WillPaginate defines it to be <b>30</b> by default. | ||||
But you can always specify the count explicitly when calling +paginate+: | ||||
@posts = Post.paginate :page => params[:page], :per_page => 50 | ||||
The +paginate+ finder wraps the original finder and returns your resultset that now has | ||||
some new properties. You can use the collection as you would with any ActiveRecord | ||||
resultset. WillPaginate view helpers also need that object to be able to render pagination: | ||||
<ol> | ||||
<% for post in @posts -%> | ||||
<li>Render `post` in some nice way.</li> | ||||
<% end -%> | ||||
</ol> | ||||
<p>Now let's render us some pagination!</p> | ||||
<%= will_paginate @posts %> | ||||
More detailed documentation: | ||||
* WillPaginate::Finder::ClassMethods for pagination on your models; | ||||
* WillPaginate::ViewHelpers for your views. | ||||
== Authors and credits | ||||
Authors:: Mislav Marohnić, PJ Hyett | ||||
Original announcement:: http://errtheblog.com/post/929 | ||||
Original PHP source:: http://www.strangerstudios.com/sandbox/pagination/diggstyle.php | ||||
All these people helped making will_paginate what it is now with their code | ||||
contributions or just simply awesome ideas: | ||||
Chris Wanstrath, Dr. Nic Williams, K. Adam Christensen, Mike Garey, Bence | ||||
Golda, Matt Aimonetti, Charles Brian Quinn, Desi McAdam, James Coglan, Matijs | ||||
van Zuijlen, Maria, Brendan Ribera, Todd Willey, Bryan Helmkamp, Jan Berkel, | ||||
Lourens Naudé, Rick Olson, Russell Norris, Piotr Usewicz, Chris Eppstein, | ||||
Denis Barushev, Ben Pickles. | ||||
== Usable pagination in the UI | ||||
There are some CSS styles to get you started in the "examples/" directory. They | ||||
are {showcased online here}[http://mislav.uniqpath.com/will_paginate/]. | ||||
More reading about pagination as design pattern: | ||||
* {Pagination 101}[http://kurafire.net/log/archive/2007/06/22/pagination-101] | ||||
* {Pagination gallery}[http://www.smashingmagazine.com/2007/11/16/pagination-gallery-examples-and-good-practices/] | ||||
* {Pagination on Yahoo Design Pattern Library}[http://developer.yahoo.com/ypatterns/parent.php?pattern=pagination] | ||||
Want to discuss, request features, ask questions? Join the | ||||
{Google group}[http://groups.google.com/group/will_paginate]. | ||||