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

时间:2018-09-07 10:27:11

标签: ruby ruby-on-rails-5

我已经生成了简单的Rails api应用程序,但是Rails.application.secrets.secret_key_base遇到了问题-它是nil。我正在本地计算机上启动它。 根据{{​​3}},一切都会好起来的。我有正确的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

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

有什么想法我错过了吗?

PS。在您用重复的方式标记此问题之前-请注意,我使用的Rails 5.2的凭据存储已更改。

2 个答案:

答案 0 :(得分:1)

尝试

[1] "12Apr18" "24Apr18" "06May18"

Rails.application.credentials.secret_key_base secret_base_key不同:在将credentials添加到凭据时,它仅作为凭据而不是秘密提供。

答案 1 :(得分:0)

我也遇到了同样的问题,最后我发现rails credentials:edit并没有真正因为编辑器而保存(我正在使用VS代码)。当我用vim尝试时,它可以保存,并且一切都可以正常进行。因此,在运行命令时,尝试将编辑器设置为vim,

EDITOR=vi bin/rails credentials:edit

然后用:wq保存,然后重试。

希望这可以解决问题:)

相关问题