我的 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/