will_paginate not showing on the Web…

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-24 02:18:37

问题


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

回答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!




回答2:


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



来源:https://stackoverflow.com/questions/3230344/will-paginate-not-showing-on-the-web

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!