Tutorial :will_paginate not showing on the Web…



Question:

The previous question is here : what is the common practice on limit the result in RoR?

Here's the users_controller:

def show    @user = User.find(params[:id])       @posts = @user.posts.paginate :page => params[:page]       respond_to do |format|      format.html # show.html.erb      format.xml  { render :xml => @user }    end  end  

and my show.html.erb:

<%=h @posts.length %>   <%=h @posts.inspect %>     <%= will_paginate @posts %>  

But in the browser, I only get this:

4 [#<Post id: 7, title: "I am a root", description: "what can I do", views: 8, created_at: "2010-07-12 15:16:26", updated_at: "2010-07-12 15:16:26", user_id: 32>, #<Post id: 8, title: "root Post two", description: "This is the second one.", views: 2, created_at: "2010-07-12 15:42:57", updated_at: "2010-07-12 15:42:57", user_id: 32>, #<Post id: 9, title: "The third one.", description: "Ok, this is the third ads", views: 3, created_at: "2010-07-12 15:43:18", updated_at: "2010-07-12 15:43:18", user_id: 32>, #<Post id: 10, title: "I type very many", description: "What is very many for?", views: 33, created_at: "2010-07-12 15:43:34", updated_at: "2010-07-12 15:43:34", user_id: 32>]  

Besides that, I don't see any other stuff.

I tried to trouble shooting with console:

>> defined? WillPaginate  => "constant"  >> [].paginate  => []  >> ActiveRecord::Base.respond_to? :paginate  => true  


Solution:1

In this case, you are seeing exactly what you should... the will_paginate method will only print out pagination links if necessary. You don't see the post listing, because you don't iterate though the @posts array. Try adding this:

<% @posts.each do |post| -%>    <p>Title: <%= post.title %>    ...  <% end -%>  

You probably will not get the pagination links unless you have 30 records in the array (I think that is the default). You can also do this in your controller to see the pagination working with a smaller set of data:

@posts = @user.posts.paginate :page => params[:page], :per_page => 2  

Hope this helps!


Solution:2

Get rid of the inspect line and add custom code to display each property of your objects.


Note:If u also have question or solution just comment us below or mail us on toontricks1994@gmail.com
Previous
Next Post »