2012-01-18 25 views
0

我一直堅持一段時間,現在在rails教程。我在10.3節中,我們應該添加分頁。我已經添加了寶石「意志PAGINATE」我的Gemfile,這是該指數視圖Rails教程will_paginate提出undefined_method total_pages

<h1>All users</h1> 
<%= will_paginate %> 
<ul class="users"> 
<% @users.each do |user| %> 
    <li> 
     <%= gravatar_for user, :size => 30 %> 
     <%= link_to user.name, user %> 
    </li> 
<% end %> 
</ul> 
<%= will_paginate %> 

服務器會引發以下問題:

ActionView::Template::Error (undefined method `total_pages' for #<Array:0xa0283fc>): 
    1: <h1>All users</h1> 
    2: <%= will_paginate %> 
    3: <ul class="users"> 
    4: <% @users.each do |user| %> 
    5:  <li> 

我一直在試圖尋找它。但是對於顯然類似的問題的解決方案都沒有奏效。有任何想法嗎?

+0

您好我認爲will_paginate需要一些參數,如<%= will_paginate @users%>,也什麼是相關負責人的樣子? – Hishalv 2012-01-18 16:11:39

+0

嘗試http://railscasts.com/episodes/51-will-paginate以獲得更好的理解,儘管有點過時。 – Hishalv 2012-01-18 16:21:57

回答

2

只需滾動教程下 - 下一個部分解決問題:)

清單10.27中的視圖不盡管如此,因爲目前@users包含了User.all(代碼10.20)的結果,它是Array類的結果,而will_paginate需要類WillPaginate :: Collection的對象。

然後,它已經修改UsersController解決它 -

class UsersController < ApplicationController 
    before_filter :authenticate, :only => [:index, :edit, :update] 
    . 
    . 
    . 
    def index 
    @title = "All users" 
    @users = User.paginate(:page => params[:page]) 
    end 
    . 
    . 
    . 
end 
+0

謝謝!這完全解決了它! (傻我,太:P) – gumlym 2012-01-18 16:20:15

+0

我有問題的代碼:User.scoped.order(「id」)。paginate ..和User.order(「id」)。paginate ...命令必須是分頁之後做分頁工作? – user938363 2013-05-03 01:22:30

0

我猜你缺少一個參數will_paginate

will_paginate @users 
+0

我試過,當我檢查will_paginate故障排除網,但它沒有工作,它仍然說相同。 – gumlym 2012-01-18 16:17:39