Ruby on rails 无法在使用mongoid的rails 3中以--auth开关启动的mongodb上执行查询。 简化案例:

Ruby on rails 无法在使用mongoid的rails 3中以--auth开关启动的mongodb上执行查询。 简化案例:,ruby-on-rails,ruby-on-rails-3,mongodb,mongoid,mongohq,Ruby On Rails,Ruby On Rails 3,Mongodb,Mongoid,Mongohq,我创建了一个新的rails 3.2项目,没有活动记录。我将mongoid 3.0.0.rc添加到GEM文件中,然后rails g mongoid:config。我编辑了我的mongoid.yml,使其看起来像我在下面发布的一样(除了hosts现在设置为localhost:27068) 我已向mongodb添加了一个管理员用户: $ mongo localhost/admin > db.addUser(myadmin,adminpass) 我还向我的数据库添加了一个普通用户: use my

我创建了一个新的rails 3.2项目,没有活动记录。我将mongoid 3.0.0.rc添加到GEM文件中,然后
rails g mongoid:config
。我编辑了我的
mongoid.yml
,使其看起来像我在下面发布的一样(除了hosts现在设置为
localhost:27068

我已向mongodb添加了一个管理员用户:

$ mongo localhost/admin
> db.addUser(myadmin,adminpass)
我还向我的数据库添加了一个普通用户:

use mydb
> db.addUser(myuser, mypassword)
$ mongo localhost/mydb -u myuser -pmypassword
MongoDB shell version: 2.0.4
connecting to: localhost/mydb
> _
我确认我可以连接到我的数据库:

use mydb
> db.addUser(myuser, mypassword)
$ mongo localhost/mydb -u myuser -pmypassword
MongoDB shell version: 2.0.4
connecting to: localhost/mydb
> _
之后,我启动
mongod
,使用
--auth
切换到强制身份验证:

$ mongod --auth --dbpath /my/db/path
现在一切似乎都好了,我创建了一些随机脚手架,如:

$ rails g scaffold User name email
并尝试在浏览器中运行项目:localhost:3000/users。繁荣我被下面发布的错误消息击中了

这是mongoid中的一个bug吗?还是我遗漏了什么


原始问题 在使用mongoid 3 rc的Rails 3.2项目中,我无法对MongoHQ托管的数据库执行任何操作。对登录操作的简单查询会显示如下错误消息:

The operation: #<Moped::Protocol::Query
  @length=83
  @request_id=3
  @response_to=0
  @op_code=2004
  @flags=[]
  @full_collection_name="mydb.users"
  @skip=0
  @limit=-1
  @selector={"name"=>"Abbas"}
  @fields=nil>
failed with error 10057: "unauthorized db:mydb lock type:-1 client [some ip]"
所以我做得不对。在MongoHQ面板中,db用户未标记为“只读”。我不会部署到Heroku;只是在我的本地主机上测试

感谢您的帮助