【问题标题】:How do I pass secret keys into mongoid.yml using secrets.yml in Rails 4.2?如何在 Rails 4.2 中使用 secrets.yml 将密钥传递给 mongoid.yml?
【发布时间】:2015-07-07 21:33:02
【问题描述】:

这是我第一次使用 Mongoid,在测试/本地服务器中一切正常,但是在部署到 IBM Bluemix 时我遇到了困难(不要问我为什么选择 Bluemix,我知道如果我使用 Figaro 部署到 Heroku。)

我正在使用它的 uri 连接到 MongoLab。

在我的 scerets.yml 中:

production:
  secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
  mongo_url: "mongodb://IbmCloud_xxxxxx_xxxxxx:xxxxxx@dsxxxxxx.mongolab.com:xxxxxx/IbmCloud_xxxxxx_xxxxxx"

在我的 mongoid.yml 中

production: 
sessions:
    default:
        # The standard MongoDB connection URI allows for easy replica set connection setup. 
        # Use environment variables or a config file to keep your credentials safe.
        uri: <%= Rails.application.secrets.mongo_url %>

当我部署应用程序时,由于 uri 为 nil,暂存失败。 我知道这一点,因为我通过硬编码 uri 进行了测试,它可以工作。

我目前没有在我的 .gitignore 中包含 mongoid.yml,所以如果我可以插入 uri:,我应该是安全的。

我还尝试将 uri 硬编码到 mongoid.yml 中并将其包含在 gitignore 中,但它给了我一些其他错误,我想知道哪种方法更好。

这是我收到的错误消息:

2015-07-07T17:29:53.01-0400 [STG/0]      OUT        rake aborted!
2015-07-07T17:29:53.01-0400 [STG/0]      OUT        NoMethodError: undefined method `match' for nil:NilClass
2015-07-07T17:29:53.01-0400 [STG/0]      OUT        /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/mongo_uri.rb:49:in `initialize'
2015-07-07T17:29:53.01-0400 [STG/0]      OUT        /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/factory.rb:106:in `new'
2015-07-07T17:29:53.01-0400 [STG/0]      OUT        /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/factory.rb:106:in `parse'
2015-07-07T17:29:53.01-0400 [STG/0]      OUT        /tmp/staged/app/vendor/bundle/ruby/2.2.0/gems/mongoid-4.0.2/lib/mongoid/sessions/factory.rb:62:in `create_session'

同样,这是因为我在 secrets.yml 中设置的 uri 在 mongoid.yml 中显示为零。

提前致谢!!

【问题讨论】:

    标签: ruby-on-rails-4 mongoid ibm-cloud mlab mongoid4


    【解决方案1】:

    Ruby buildpack 正在覆盖您拥有的 URL。您需要将 mongolab 或 mongodb 服务附加到您的应用程序。 buildpack 将自动为您连接到您的数据库中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-26
      • 1970-01-01
      • 2018-12-27
      • 2017-12-16
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多