Rails 5.1加密的私密信息无法读取RAILS_MASTER_KEY环境变量

3
  • 我运行export RAILS_MASTER_KEY=************************
  • 我从目录中删除了密钥文件。
  • 我检查ENV是否包含正确的密钥RAILS_MASTER_KEY,它是正确的。
  • 我运行rails console
  • 我甚至尝试运行RAILS_MASTER_KEY=************************ rails console来强制使用环境变量,但没有任何效果。

我仍然收到缺少密钥错误。

Missing encryption key to decrypt secrets with. Ask your team for your master
key and put it in ENV["RAILS_MASTER_KEY"] (Rails::Secrets::MissingKeyError)`

为什么Rails没有读取环境变量?如果有帮助的话,这是回溯信息。

from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:37:in 'key'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:96:in 'encryptor'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:45:in 'decrypt'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:89:in 'preprocess'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:26:in 'block in parse'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:23:in 'each'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:23:in 'each_with_object'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/secrets.rb:23:in 'parse'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/application.rb:391:in 'secrets'
from /Users/user/Company/service/config/initializers/redis.rb:1:in '<top (required)>'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/activesupport-5.1.0.rc2/lib/active_support/dependencies.rb:286:in 'load'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/activesupport-5.1.0.rc2/lib/active_support/dependencies.rb:286:in 'block in load'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/activesupport-5.1.0.rc2/lib/active_support/dependencies.rb:258:in 'load_dependency'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/activesupport-5.1.0.rc2/lib/active_support/dependencies.rb:286:in 'load'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/engine.rb:655:in 'block in load_config_initializer'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/activesupport-5.1.0.rc2/lib/active_support/notifications.rb:168:in 'instrument'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/engine.rb:654:in 'load_config_initializer'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/engine.rb:612:in 'block (2 levels) in <class:Engine>'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/engine.rb:611:in 'each'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/engine.rb:611:in 'block in <class:Engine>'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/initializable.rb:30:in 'instance_exec'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/initializable.rb:30:in 'run'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/initializable.rb:59:in 'block in run_initializers'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:228:in 'block in tsort_each'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:350:in 'block (2 levels) in each_strongly_connected_component'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:422:in 'block (2 levels) in each_strongly_connected_component_from'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:431:in 'each_strongly_connected_component_from'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:421:in 'block in each_strongly_connected_component_from'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/initializable.rb:48:in 'each'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/initializable.rb:48:in 'tsort_each_child'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:415:in 'call'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:415:in 'each_strongly_connected_component_from'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:349:in 'block in each_strongly_connected_component'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in 'each'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in 'call'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:347:in 'each_strongly_connected_component'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:226:in 'tsort_each'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/2.3.0/tsort.rb:205:in 'tsort_each'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/initializable.rb:58:in 'run_initializers'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/railties-5.1.0.rc2/lib/rails/application.rb:353:in 'initialize!'
from /Users/user/Company/service/config/environment.rb:5:in '<top (required)>'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application.rb:92:in 'require'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application.rb:92:in 'preload'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application.rb:143:in 'serve'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application.rb:131:in 'block in run'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application.rb:125:in 'loop'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application.rb:125:in 'run'
from /Users/user/.rvm/gems/ruby-2.3.1/gems/spring-2.0.1/lib/spring/application/boot.rb:19:in '<top (required)>'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in 'require'
from /Users/user/.rvm/rubies/ruby-2.3.1/lib/ruby/site_ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in 'require'
from -e:1:in '<main>'

更新

在我的终端中运行ENV会显示RAILS_MASTER_KEY,但是当我在environments/development.rb文件中放置了puts ENV时,该变量不存在。这是为什么?

1个回答

2
所有与Rails有关的环境变量问题都是由于spring引起的。尝试执行bin/spring stop,然后重新启动控制台即可解决问题。

哇!谢谢@Knshiro,那正是我在一个Rails-5.2应用程序中遇到的问题。感谢您的发布! - Dan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接