2011-11-20 36 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”:模块如何解决这个问题? –