测试环境中Rails.application.secrets 中缺少secret_key_base

big*_*olk 3 ruby ruby-on-rails-5

我已经生成了简单的 Rails api 应用程序,但我遇到了问题Rails.application.secrets.secret_key_base- 它是nil. 我正在本地计算机上启动它。根据这篇文章,一切都应该没问题。我有合适的app/config/credentials.yml.enc。当我尝试用它编辑它时,rails credentials:edit它可以正确编辑。其实际内容是

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: 47ba27802a354b44c1cd0d0c624fcde2dced69ccfe62d274e9ecfc98d9e6671c4cf31a29aaf77af555d9553811a3ff15f22ab060e5ec5ffc0d29f77241368272
Run Code Online (Sandbox Code Playgroud)

/app/config/environments/*.rb在我添加的所有配置文件 ( ) 中config.require_master_key = true- 它没有帮助。我的实际Rails.application.secrets内容是{:secret_key_base=>nil, :secret_token=>nil}。我已将其转储到我的自定义类中,并且application_controller.rb在两个地方都有相同的结果。

我错过了什么想法吗?

附言。在您用重复标记此问题之前 - 请注意,我使用的是 Rails 5.2,其中凭据存储已更改。

Den*_*ler 5

尝试

Rails.application.credentials.secret_key_base 
Run Code Online (Sandbox Code Playgroud)

secret_base_keycredentials与当您将其添加到凭据时不同,secret_base_key它仅作为凭据可用,而不是作为秘密。