1

我正在使用railsadmin。当我找到某个资源时。通过键入url

本地主机:3000/admin/rule

而不是给我这个错误。代码为:

scope=规则.all范围。第(1)页。每(2)页

.以上代码写在rails_admin gem.in中的adaptors文件夹中名为mongoid.rb的文件中。完整日志为:

NoMethodError(#<数组:0xcea7408>的未定义方法“page”):mongoid(2.4.8)lib/mongoid/critria.rb:385:在“method_missing”中/home/usman/.rvm/gems/ruby-1.9.2-p290@系统/bundler/gems/kaminari-809105ad782a/lib/kaminira/models/mongoid_extension.rb:11:在“页面”中/home/usman/.rvm/gems/ruby-1.9.2-p290@系统/bundler/gems/rails_admin-069819944cc9/lib/rails2_admin/adapters/mongoid.rb:37:in“all”/home/usman/.rvm/gems/ruby-1.9.2-p290@系统/bundler/gems/rails_admin-069819944cc9/app/controllers/admin/main_controller.rb:127:在“get_collection”中/主页/usman/.rvm/宝石/ruby-1.9.2-p290@系统/bundler/gems/rails_admin-069819944cc9/app/controllers/rails_admin/main_controller.rb:39:在“list_entries”中/home/usman/.rvm/gems/ruby-1.9.2-p290@系统/bundler/gems/rails_admin-069819944cc9/lib/rails_admin/config/actions/index.rb:30:in“<class:index>中的块(2级)”

我应该怎么解决这个错误?

4个答案4

重置为默认值
4

你不能打电话卡米纳里上的方法阵列,因为规则.all将返回阵列.

所以你必须这样做:规则.第(1)页.每(2)

以下是文档和示例卡米纳里用法:

https://github.com/amatsuda/kaminari网站

0
4

我已经断断续续地遇到这个问题有一段时间了,现在我正在使用Mongoid。有时在RailsAdmin中刷新页面会修复它。

我发现问题是Kaminari的钩子在我的环境中没有初始化,所以依赖Kaminari扩展方法的模型没有可用的钩子。

我只是从卡米纳里的铁轨把它放在我的顶部rails_admin初始值设定项:

Kaminari::Hooks.init

现在情况似乎对我来说很好。但是,我不知道为什么ActiveSupport回调没有运行该代码。

  • 修复了mongo和railsadmin的相同问题-2年过去了,问题仍然存在 评论 2013年6月18日15:18
  • 我的数组也出现了同样的错误,除了当前页面而不是第页。这种方法仍然有效吗?我也没有使用Rails_admin 评论 2014年1月27日18:53
  • 为我修复了在引擎中使用所需的蒙古模型。 评论 2014年8月4日19:28

使用这个

Kaminari.paginate_array(Rule.all).page(params[:page])
1
  • 这是最好的答案! 评论 2015年1月14日13:11
0

卡德的解决方案很棒!唯一的问题是我发现我必须添加.per才能使其生效。

Kaminari.paginate_array(Rule.all).page(params[:page]).per(per_page_RECORDS)

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.