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

问题描述 投票:0回答:1

无法让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',都无济于事(我得到了LoadErrors)。我也尝试过register Kaminari::Helpers::SinatraHelpers提到的here,也失败了。

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

ruby sinatra mongoid bundler kaminari
1个回答
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文件中,require 'mongoid-pagination'

© www.soinside.com 2019 - 2024. All rights reserved.