Kaminari传呼机不与Sinatra和Mongoid合作?

时间:2017-12-09 03:46:56

标签: ruby sinatra mongoid bundler kaminari

无法让Kaminari与Sinatra和Mongoid合作。我收到了这个错误:

NoMethodError at /api/events
undefined method `page' for #<Mongoid::Criteria:0x007fccb7828c38>

以下是获取错误的最小代码:

的Gemfile

source "https://rubygems.org"
gem 'mongoid'
gem 'sinatra'
gem 'kaminari-mongoid'
gem 'kaminari-sinatra'

server.rb

require 'mongoid'
require 'sinatra'

class Event
  include Mongoid::Document
end

get '/events' do
  Event.desc(:id).page(params[:page]).per(10)
end

我尝试了require 'kaminari'require 'kaminari-sinatra'require 'kaminari-mongoid',但都无济于事(我得到LoadError s)。我也尝试了register Kaminari::Helpers::SinatraHelpers here,但也失败了。

我已经详细关注了instructions,并且已经搜索了谷歌和StackOverflow无济于事。 This answer没有用。我不禁想到我错过了一些容易的东西;我不是Ruby的老手。我的预感是Bundler的事情。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。不幸的是,kaminari-mongoid具有Rails依赖性(您可以在gemspec文件中查看:https://github.com/kaminari/kaminari-mongoid/blob/master/kaminari-mongoid.gemspec)。因此,不可能同时使用kaminari-sinatra和kaminari-mongoid。

这解决了我的问题。 https://github.com/ajsharp/mongoid-pagination。将其添加到您的Gemfile并使用Bundler安装。

在您的app.rb文件中,.txt