ruby-on-rails - 无法使用 rails 连接到 mLab 的 MongoDB
问题描述
我正在将 Heroku 与 mLab 一起使用。
我使用 mLab 设置我的应用程序以使用 MongoDB。
它在 Heroku 和我的本地计算机上都不起作用。
我可以使用命令行访问数据库:
mongo "mongodb://usrname:pass@ds333238.mlab.com:33238/heroku_4blzdg47"
但是当我使用带有以下设置的rails时config/mongoid.yml
:
production:
sessions:
default:
uri: mongodb://usrname:pass@ds333238.mlab.com:33238/heroku_4blzdg47
这将是错误:
MOPED: Could not resolve IP for: ds333238.mlab.com:33238, delta is 0.019052, error class is #<Resolv::ResolvError: Resolv::ResolvError>, retries is 0. Node is <Moped::Node resolved_address=nil> runtime: n/a
MOPED: Could not resolve IP for: ds333238.mlab.com:33238, delta is 0.038719, error class is #<Resolv::ResolvError: Resolv::ResolvError>, retries is 1. Node is <Moped::Node resolved_address=nil> runtime: n/a
MOPED: Could not resolve IP for: ds333238.mlab.com:33238, delta is 0.054449, error class is #<Resolv::ResolvError: Resolv::ResolvError>, retries is 2. Node is <Moped::Node resolved_address=nil> runtime: n/a
Rendered homes/new.html.erb within layouts/application (368.6ms)
Completed 500 Internal Server Error in 385ms
ActionView::Template::Error (Could not connect to a primary node for replica set #<Moped::Cluster:70222534873720 @seeds=[<Moped::Node resolved_address=nil>]>)
如果我设置config/mongoid.yml
为本地数据库,它可以工作:
production:
sessions:
default:
uri: mongodb://localhost:27017/app_development
有什么问题吗?
我的部分宝石是:
ruby '2.3.7'
gem 'rails', '4.1.16'
gem "mongoid", '4.0.0'
解决方案
在我将 Mongoid 更新到 5.2 版后它运行良好
推荐阅读
- php - 表格的第一行未显示在下拉列表中
- angular - 如何更改角度材料日期选择器中的日期格式?
- python - 在从 json 输出中获取特定值时需要帮助
- oracle - Java.sql.SQLException:Oracle 过程和 mybatis 不允许操作
- oracle - Team Foundation Server(或 Azure DevOps Server)是否与 Oracle SSO IAM 兼容?
- typescript - 当使用扩展时,TypeScript 可以在 switch 块中推断出正确的类型,就像我在使用联合时一样吗?
- c++ - 使用 gstreamer 重新采样和卸载音频 rtp
- entity-framework - 包含另一个类的字段
- vb.net - 组合框在表单加载事件中选择第一个项目。我如何更改它在表单加载时不选择第一个项目
- sql - 如何使用每周汇总的另一个表中的值创建一个临时表?