Rails: Showing 10 or 20 or 50 results per page with will_paginate how to?

pollinoco picture pollinoco · Aug 15, 2009 · Viewed 8k times · Source

me again...

I need show 10 or 20 or 50 results number of results per page with a select options in my list of posts using will_paginate plugin

Can you help me please?

Thanks!

Answer

Simon Woodside picture Simon Woodside · Apr 16, 2010

Looks like the OP also asked here: http://railsforum.com/viewtopic.php?id=33793 and got much better answers.

To adapt the best solution there, here's what I like:

(in the view)

<%= select_tag :per_page, options_for_select([10,20,50], params[:per_page].to_i),
       :onchange => "if(this.value){window.location='?per_page='+this.value;}" %>

(in the controller)

@per_page = params[:per_page] || Post.per_page || 20
@posts = Post.paginate( :per_page => @per_page, :page => params[:page])