【问题标题】:total_pages return in pagination with rails and kaminaritotal_pages 使用 rails 和 kaminari 分页返回
【发布时间】:2016-07-17 12:15:29
【问题描述】:

我想在我的页面中进行分页,我使用 ruby​​ 和 kaminari 来实现这一点。

class	ServicesController < ApplicationController
	def index
		/@services = Service.order(name: :asc)/
		@organs = Admin::Organ.all
	
		@services = @services.order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
	end

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

&lt;%= paginate @organ.services %&gt;

我想调用有关系的服务 在我的观点中,我在每个器官中插入最后一个代码。

结果是:

 undefined method `total_pages' for #&lt;Mongoid::Criteria:0x007f18a8b1f338&gt;

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

【问题讨论】:

    标签: ruby-on-rails kaminari


    【解决方案1】:

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

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

    【讨论】:

    • 我试试你的代码,我觉得不错,但麻烦还在继续。 #<:criteria:> 的未定义方法“total_pages”
    • @CarlosAndré &lt;%= paginate @organ.services %&gt; 你从哪里得到@organ
    • @CarlosAndré 你应该在你的视图中使用它——&lt;%= paginate @services %&gt;
    • 在我的模型中有一个器官和一个服务,但它们之间有一个链接。对象@organ 是调用服务实例的人。
    • @CarlosAndré 在这里,您尝试在控制器中对 @services 进行分页,但您在视图中使用了 &lt;%= paginate @organ.services %&gt;@services@organ.services 是不同的。我认为这就是您遇到此问题的原因。您可以将整个视图页面发布到您想要使用分页的地方吗?
    【解决方案2】:

    试试这个

    旧代码

    @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 )
    

    【讨论】:

    • 我试试你的代码,我觉得不错,但麻烦还在继续。 #<:criteria:> 的未定义方法“total_pages”
    • 你有什么内容吗?您的数据库中可能没有内容。
    • 有内容,但获取和返回此内容有问题
    【解决方案3】:

    我遇到了类似的问题,这是因为 commontator 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多