ruby - 不使用 .load() 初始化 Mongoid

标签 ruby mongodb heroku orm mongoid

我的 Sinatra 应用程序中有以下行:

Mongoid.load!('./config/database/mongoid.yml')

这很好,但我不想将连接详细信息保留在 YAML 文件中,并将其添加到 .gitignore 。我想将它们保留在ENV中。

过去我可以通过添加类似 username: <%= ENV['MONGODB_USER'] %> 的内容来绕过这个问题。到 YAML 配置文件,然后将其读取为 ERB,保存并使用 Mongoid.load! 再次读取它在 Heroku 删除磁盘之前。不用说,这太疯狂了。

我能找到的只是 .load! 的定义over here而且看起来没有任何办法可以解决这个问题。

是否有一些隐藏的方法可以以编程方式配置 Mongoid连接?

提前致谢。

最佳答案

构建于 mu's answer :

您可以为 Mongoid 提供一个哈希值以用于初始化,如下所示:

Mongoid.load_configuration(clients: {
  default: {
    database: database,
    hosts: [ host ]
  }
})

请注意,您传递给 load_configuration 的哈希值不会像通常在 mongoid.yml 中那样以环境 key 开头。

关于ruby - 不使用 .load() 初始化 Mongoid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31729945/

相关文章:

ruby - 使用 Mongoid,我可以 "update_all"一次将一个值推送到多个条目的数组字段吗?

python - 在python中通过身份验证连接到套接字

python - 使用 Heroku 的 Django 部署 - [Errno 2] 没有这样的文件或目录

heroku - Heroku 计费的最短时间是多少?

javascript - 如何解决此 Javascript 错误 TypeError : 'undefined' is not an object (evaluating 't.subscribe' )?

ruby-on-rails - rails if 数组中的对象

python - "AttributeError: ' GridFS ' object has no attribute ' 查找 '"

ruby-on-rails - 如何设计调用多个类方法的rake任务?

ruby - 将 CSV 导入 Postgresql,其中包含不重复行的重复值

Heroku:django.core.exceptions.ImproperlyConfigured:找不到 GDAL