gpt4 book ai didi

ruby-on-rails - 在 Rails 4.0.2 版本中使用 config/secrets.yml

转载 作者:行者123 更新时间:2023-12-04 16:20:19 25 4
gpt4 key购买 nike

我在看 http://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html
并在那里看到了 config/secrets.yml 的技巧

我将我的 secret_base_keys 移到该文件中,并删除了 secret_token.rb文件。

但是服务器没有启动。

DEPRECATION WARNING: You didn't set config.secret_key_base. Read the upgrade documentation to learn more about this new config option. (called from service at /home/bismailov/.rvm/rubies/ruby-1.9.3-p429/lib/ruby/1.9.1/webrick/httpserver.rb:138)
[2014-01-15 16:15:51] ERROR RuntimeError: You must set config.secret_key_base in your app's config.

我相信这是因为我还没有使用 Rails 4.1。

有没有办法在 Rails 4.0 版中实现这个新功能(secrets.yml)?也许某种 gem ...

非常感谢!

最佳答案

这个 secret_key_base 弃用似乎没有替代语法来删除 Rails 4.0 应用程序中的弃用警告。为了满足弃用,请按照将生产 key 移动到 secrets.yml 的步骤并删除 secret_token.rb 文件。在 application.rb 中实现 YAML 加载程序以从 secrets.yml 文件中提取 token 。

使用 rake secret 为您的每个环境生成一个新 token 。将输出复制并粘贴到 secrets.yml 文件的每个部分。

# config/secrets.yml
development:
secret_key_base: __pasted from rake secret___
test:
secret_key_base: __pasted from rake secret___
production:
secret_key_base: __pasted token from config/initializers/secret_token.rb___


# config/application.rb
# TODO Remove this in Rails 4.1
config.secret_key_base = YAML.load(File.open("#{Rails.root}/config/secrets.yml"))[Rails.env]['secret_key_base']

引用: https://github.com/rails/rails/pull/13298

更新:

我最初的帖子主要关注 @user2998870 的启发,我在我的 application.rb 中添加了一个方法,它允许一个人实现多个 secret ,而不仅仅是 secret_key_base 。这使得顶级键可以作为方法访问,例如 Rails.application.secrets.braintree_merchant_id

如果嵌套,则可以使用 Rails.application.secrets.braintree['merchant_key'] 调用嵌套键值。

注意: secret_key_base 仍然需要上面的原始代码才能在 Rails 4.0 中正确运行。
# config/application.rb
def secrets
@secrets ||= begin
yaml = YAML.load(File.open("#{Rails.root}/config/secrets.yml"))[Rails.env]
ActiveSupport::OrderedOptions.new.merge!(yaml.symbolize_keys)
end
end

关于ruby-on-rails - 在 Rails 4.0.2 版本中使用 config/secrets.yml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21136363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com