total_pages以rails和kaminari的形式返回

时间:2016-03-29 18:55:27

标签: ruby-on-rails kaminari

我想在我的页面中加入一个分页,我使用ruby和kaminari来实现这一点。



<%= paginate @organ.services %>
&#13;
&#13;
&#13;

这段代码,我的控件尝试分页3到3页。在视图中:

&#13;
&#13;
 undefined method `total_pages' for #<Mongoid::Criteria:0x007f18a8b1f338>
&#13;
&#13;
&#13;

因为我想通过关系来呼叫服务 我在每个器官中插入最后一个代码。

结果是:

&#13;
&#13;
current
&#13;
&#13;
&#13;

如果你能提供帮助,请感谢您的关注!

3 个答案:

答案 0 :(得分:0)

尝试更改您的控制器代码,如下所示:

class ServicesController < ApplicationController
    def index
      @organs = Admin::Organ.all
      @services = Service.order(created_at: :desc).page(params[:page]).per(3)
    end
end

答案 1 :(得分:0)

试试这个

旧代码

@services = @services.order(created_at: :desc).paginate(page:params[:page], per_page: 3 )

新代码

@services = Service.order(created_at: :desc).paginate(page:params[:page], per_page: 3 )

答案 2 :(得分:0)

我有一个类似的问题,这是因为commonrator gem从will_paginate引入了方法并覆盖了ActiveRecord基类。

page_entries_info方法的调用堆栈中出现错误,这似乎是两个库之间的通用方法名称。

要解决此问题,您可以使用以下方法明确引用该方法:

所以查看代码:

<%= Kaminari::Helpers::HelperMethods.page_entries_info @events %>
<%= link_to "Next", path_to_next_page(@events) %>
<%= link_to "Prev", path_to_prev_page(@events) %>

和初始化程序(initializers / kaminari_config.rb)

module Kaminari
  module Helpers
    module HelperMethods
      extend ActionView::Helpers::TranslationHelper
      module_function :page_entries_info
    end
  end
end