2

Rails 3アプリでKaminariを使用してページ付けを実装しようとしていますが、次のエラーが発生します。

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_keynote_id」に問題があると思いますが、修正方法がわかりません。

ありがとうございました!

4

3 に答える 3

5

カミナリは配列をページ分割することもできます(これはあなたが持っているものです)

array = Story.find_all_by_keynote_id(@keynote, :order => 'created_at DESC')
@stories = Kaminari.paginate_array(array).page(params[:page])
于 2011-11-21T00:58:23.153 に答える
3

はい、しかし配列なしで同じものをクエリする方法は?それだけが必要。

@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])
于 2011-11-21T00:51:18.387 に答える
2

Active Record Relationを期待しているときに、pageメソッドに配列をフィードしています。その用語に精通していない場合は、アクティブレコードクエリガイドを参照してください。

カミナリのドキュメントによると、これはあなたがそれを使用することになっている方法です:

@stories = Story.order(:created_at).page(params[:page])
于 2011-11-21T00:11:59.937 に答える