【问题标题】:Error with Kaminari paginationKaminari分页错误
【发布时间】:2011-07-21 01:08:21
【问题描述】:

我想用 Kaminari 分页 gem 对我的对象进行分页。我的控制器中有这一行:

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

我认为那一行:

<%= paginate @products %>

我模型中的那一行:

paginates_per 20

当我打开应该列出我的对象的页面时,我收到以下错误消息:

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

在我的&lt;%= paginate @products %&gt; 行引发了异常。

我已经为另一个项目制作了分页,它工作得非常好。有人可以帮帮我吗?

谢谢!

【问题讨论】:

    标签: ruby-on-rails exception pagination kaminari


    【解决方案1】:

    编辑:

    问题在于 find_all_by_* 返回一个数组,而不是 ActiveRecord::Relation。

    你可以这样做

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

    另外,你应该有一个.page(params[:page])

    【讨论】:

    • 我得到了同样的错误。我试过@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]) 但还是不行。
    • 是的,但是数组中只有一个值。不是很清楚,但我的产品是按类别分类的,:id 实际上是我列表中的产品所属的类别 ID。如果我不放置分页,我会在我之前选择的类别中拥有我的产品的完整列表 (:id)。问题只是在我设置分页时。
    • 感谢@Dogbert,您已经清除了我的概念,我一直在寻找这个。一个 where 条件适用于分页。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 2011-10-18
    • 2011-08-02
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多