2010-07-12 56 views
1

前一個問題是在這裏: what is the common practice on limit the result in RoR?will_paginate不顯示在Web上...

這裏的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 

和我show.html.erb:

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

<%= will_paginate @posts %> 

但在瀏覽器中,我只得到這個:

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>] 

除此之外,我沒有看到任何其他的東西。

我試圖麻煩拍攝控制檯:

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

回答

6

在這種情況下,您正在看到您應該做什麼... will_paginate方法只會在必要時打印分頁鏈接。你沒有看到帖子列表,因爲你不會迭代@posts數組。嘗試添加:

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

你可能不會得到分頁鏈接,除非你有30個記錄在數組中(我認爲這是默認值)。您也可以在您的控制器中執行此操作,以查看使用較小數據集的分頁:

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

希望這有助於您!

0

擺脫inspect線並添加自定義代碼,以顯示你的對象的每個屬性。