2011-11-20 38 views
2

我想實現我的Rails應用程序3與雷分頁,但我發現了以下錯誤:錯誤在Rails的雷分頁3

undefined method `page' for #<Array:0x007fe43f4b0e80> 

這是我在我的控制器:

@stories = Story.find_all_by_keynote_id(@keynote, :order => 'created_at DESC').page(params[:page]) 

而這就是我把我的觀點:

<%= paginate @stories %> 

我覺得有一個問題與「find_all_by_keyn ote_id「,但我不知道如何解決它。

謝謝!

+0

你記得重新啓動服務器嗎? –

回答

3

Yes, but how to query the same without an array? That's what I need.

@stories = Story.where(:keynote_id => @keynote).order('created_at DESC').page(params[:page]) 

Keynote.has_many :stories 

@stories = @keynote.stories.order('created_at DESC').page(params[:page]) 
+0

這就是我剛剛做的,謝謝! –

2

當期望Active Record Relation時,您正在爲頁面方法提供數組。如果你不熟悉那個術語,那麼你應該看看active record query guide

按照雷的文檔,這是你應該如何使用它:

@stories = Story.order(:created_at).page(params[:page]) 
+0

是的,但如何查詢相同的數組?這就是我需要的。 –

5

雷也可以分頁陣列(這是你有)

array = Story.find_all_by_keynote_id(@keynote, :order => 'created_at DESC') 
@stories = Kaminari.paginate_array(array).page(params[:page]) 
+1

謝謝!我不知道。我用另一種方法,但結果相同。我把這個放在我的控制器中'@stories = Story.where(「keynote_id =?」,params [:keynote_id])。order(「created_at DESC」)。page(params [:page])' –

+1

我得到一個未定義的方法Kaminari的「paginate_array」:模塊如何解決這個問題? –