Rails 3中的Kaminari分页错误

时间:2011-11-20 23:14:11

标签: ruby-on-rails ruby-on-rails-3 pagination kaminari

我正在尝试使用Kaminari在我的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_keynote_id”存在问题,但我不确定如何修复它。

谢谢!

3 个答案:

答案 0 :(得分:5)

Kaminari还可以对数组进行分页(这就是你所拥有的)

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

答案 1 :(得分: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])

答案 2 :(得分:2)

当您希望使用Active Record Relation时,您正在为该方法提供一个数组。如果您不熟悉该术语,那么您应该查看active record query guide

根据Kaminari文档,这是您应该如何使用它:

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