无法让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的事情。有什么想法吗?
答案 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