2011-07-20 113 views
2

我想用Kaminari分頁創建分頁對象。我有這條線在我的控制器:Kaminari分頁錯誤

@products = Product.order("id").find_all_by_id(params[:id]) 

在我看來,這條線:

<%= paginate @products %> 

在我的模型線:

paginates_per 20 

當我打開我的頁面,我的對象應該列出,我有這個錯誤信息:

undefined method `current_page' for #<Array:0x2964690> 

例外情況發生在我的<%= paginate @products %>一行。

我已經爲另一個項目做了分頁,它的工作真的很棒。請有人幫助我嗎?

謝謝!

回答

6

編輯:

的問題是,find_all_by_*返回一個數組,而不是一個ActiveRecord ::關係。

你可以做這樣的事情,而不是

@products = Product.order("id").where("id IN (?)", params[:id]) 

此外,你應該有一個.page(params[:page])在那裏。

+0

我得到同樣的錯誤。我試過 '@products = Product.order(「id」)。find_all_by_id(params [:id])。page(params [:page]) '和 '@products = Product.order(「id」)。 page(params [:page])。find_all_by_id(params [:id]) ' 但它仍然不起作用。 – TW147

+0

@ TheWhite147,請嘗試我編輯的答案。 – Dogbert

+0

是的,但數組中只有一個值。它不是很清楚,但我的產品按類別分類,':id'實際上是我的列表中的產品所屬的類別的標識。如果我沒有把分頁,我有我的產品在我以前選擇的類別(':id')的完整列表。問題是隻有當我設置分頁。 – TW147