如何在rails 4上的ruby中使用secrets.yml来在database.yml中存储密码

Met*_*ker 2 passwords ruby-on-rails-4

我在rails 4项目上有一个ruby,我的config/secrets.yml看起来像这样:

development:
  secret_key_base: verylongnumber
  postgres: 'mypassword'
Run Code Online (Sandbox Code Playgroud)

我的config/database.yml

default: &default
  adapter: postgresql
  encoding: unicode
  # For details on connection pooling, see rails configuration guide
  # http://guides.rubyonrails.org/configuring.html#database-pooling
  pool: 5
  host: localhost
  username: myusername
  password: 'mypassword' # <-- Problem here
Run Code Online (Sandbox Code Playgroud)

我需要在config/database.yml中输入密码才能从secrets.yml获取密码?

我试过了:

password: <%= ENV['postgres'] %>
password: <%= ENV["postgres"] %>
password: <%= ENV[postgres] %>
password: ENV['postgres']
password: ENV["postgres"]
password: ENV[postgres]
Run Code Online (Sandbox Code Playgroud)

但这些解决方案都没有奏效.我哪里做错了?提前致谢!

Pav*_*van 9

您需要使用<%= Rails.application.secrets[:your_key] %>来访问值secrets.yml.

以下应该有效

<%= Rails.application.secrets[:postgres] %>

我强烈建议你看一下这个博客

https://launchschool.com/blog/managing-environment-configuration-variables-in-rails