我正在尝试使用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”存在问题,但我不确定如何修复它。
谢谢!
答案 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])