我有一个使用 rails 4、最新版本的 mongodb 和 mongoid 设置的 vagrant box。一旦 vagrant box 启动mongo
,我可以使用 mongodb 访问 mongodb 和任何现有数据库。问题似乎是我的 rails 代码没有写入 mongodb。有没有其他人经历过这个?是否存在我没有看到的配置问题?我应该运行哪些测试才能得到一些错误来帮助调试这个问题?
谢谢!
编辑:好的,重新启动网络服务器后,它现在似乎可以工作了。或者至少我可以尝试通过 rails 控制台查询 mongodb。随着我继续测试更多,我会更新。
编辑2:所以在rails沙盒控制台中,我可以尝试使用User.all查看用户集合,但User.first给我一个错误,如下所示。
Mongoid::Errors::NoSessionConfig:
Problem:
No configuration could be found for a session named 'default'.
Summary:
When attempting to create the new session, Mongoid could not find a session configuration for the name: 'default'. This is necessary in order to know the host, port, and options needed to connect.
Resolution:
Double check your mongoid.yml to make sure under the sessions key that a configuration exists for 'default'. If you have set the configuration programatically, ensure that 'default' exists in the configuration hash.
按照解决方案的建议,我快速检查了下的 mongoid.yml config/mongoid.yml
,我看到它是这样列出的
development:
sessions:
default:
database: mongoid
hosts:
- localhost:21017
options:
options:
test:
sessions:
default:
database: mongoid
hosts:
- localhost:21017
options:
consistency: :strong
max_retries: 1
retry_interval: 0
编辑 3:看起来这个问题只发生在我尝试在沙盒模式下运行 rails 控制台时。它在普通的 rails 控制台中运行良好。无论如何让它在沙盒控制台中工作?
编辑4:拼写
任何见解都会非常有帮助。谢谢!