Ruby on rails 本地gem中带有Mongoid的railsapi

Ruby on rails 本地gem中带有Mongoid的railsapi,ruby-on-rails,mongodb,gem,mongoid,database-connection,Ruby On Rails,Mongodb,Gem,Mongoid,Database Connection,我有一个railsapi项目,它使用我自己的本地gem进行授权。 这个gem应该连接MongoDB来存储用户和令牌 我无法使用Mongoid和doing来清除与MongoDB的连接 Mongoid.load!(yaml_dir,env) 当我从Mongoid(load!,logger)调用任何方法时,我得到 /Users/M/.rvm/gems/ruby-2.1.0/gems/mongoid-1.0.6/lib/mongoid.rb:68:in'method_missing':未定义的方法'lo

我有一个
railsapi
项目,它使用我自己的本地gem进行授权。 这个gem应该连接
MongoDB
来存储用户和令牌

我无法使用
Mongoid
和doing来清除与
MongoDB
的连接

Mongoid.load!(yaml_dir,env)

当我从
Mongoid
load!
logger
)调用任何方法时,我得到

/Users/M/.rvm/gems/ruby-2.1.0/gems/mongoid-1.0.6/lib/mongoid.rb:68:in'method_missing':未定义的方法'load!'对于#(命名错误)


如何从本地gem连接mongo?

问题的原因是您使用的mongoid版本(在您的案例中为1.0.6版)不支持该方法

根据您的rails版本,mongoid gem似乎下载了一个非常旧的版本。升级rails版本并将以下内容插入GEM文件后,问题应该得到解决:
gem“mongoid”,“~>4.0.0.beta1”


此外,一旦有稳定的版本发布(即测试版后),请确保升级您的mongoid版本。

解决方案是指定

gem'mongoid',github'mongoid/mongoid'

在gem
Gemfile

gem'mongoid','~>4.0.0.beta1',github'mongoid/mongoid'

Rails
Gemfile

gem.gemspec
必须具有以下条目:

spec.add_runtime_dependency 'mongoid'
spec.add_runtime_dependency 'bson'
spec.add_runtime_dependency 'bson_ext'

这通常适用于我,但我使用的mongoid版本高于3.0。根据旧的Mongoid 2.0文档,您应该在应用程序的初始化中尝试以下操作
Mongoid.configure do | config | config.master=Mongo::Connection.new.db(“教父”)end
。但这些都是根据Mongoid 2.0文档,它们很有可能不适用于您的版本。由于您的mongoid版本不再受支持,我强烈建议您升级到3.0。并在您使用Mongoid 4时将rails版本升级至至少3.2.13I。我不知道为什么它也安装了mongoid 1。你不会是第一个抱怨的人。我认为由于您的rails版本,它默认下载了mongoid 1。我认为如果您升级了rails版本,然后在gem文件中插入
gem“mongoid”、“~>4.0.0.beta1”
,您应该会对goYep有好处。我改变了它,它现在似乎正在工作。好的,我将把评论移到回答部分,这样这个问题就不会在未回答的垃圾箱中。请随意投票;)