Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4.2.3未从secrets.yml为开发/测试环境设置secret_key_base,且所有其他变量设置正确_Ruby On Rails_Ruby_Ruby On Rails 4_Environment Variables_Development Environment - Fatal编程技术网

Ruby on rails Rails 4.2.3未从secrets.yml为开发/测试环境设置secret_key_base,且所有其他变量设置正确

Ruby on rails Rails 4.2.3未从secrets.yml为开发/测试环境设置secret_key_base,且所有其他变量设置正确,ruby-on-rails,ruby,ruby-on-rails-4,environment-variables,development-environment,Ruby On Rails,Ruby,Ruby On Rails 4,Environment Variables,Development Environment,我正在运行一个Rails 4.2.3应用程序,该应用程序在部署时在生产环境中运行,并通过Heroku设置了环境变量。但是,我的开发和测试环境突然出现了以下错误: DEPRECATION WARNING: You didn't set `secret_key_base`. Read the upgrade documentation to learn more about this new config option. (called from service at /Users/Benjamin

我正在运行一个Rails 4.2.3应用程序,该应用程序在部署时在生产环境中运行,并通过Heroku设置了环境变量。但是,我的开发和测试环境突然出现了以下错误:

DEPRECATION WARNING: You didn't set `secret_key_base`. Read the upgrade documentation to learn more about this new config option. (called from service at /Users/Benjamin/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/webrick/httpserver.rb:138)
根据我在StackOverflow和其他地方找到的所有信息,这可能与我的secrets.yml文件有关:

development: secret_key_base: LONG-KEY test: secret_key_base: LONG-KEY 发展: 秘密密钥密钥库:长密钥 测试: 秘密密钥密钥库:长密钥 我尝试过用rake secret重置这些密钥,但没有成功。我在secrets.yml中设置了其他正确设置的环境变量,但当我从控制台运行Rails.application.secrets.secret_key_base时,我总是得到零

rake secret
任何帮助都将不胜感激。

当您说您尝试使用rake secret重置它们时,您是什么意思?您将控制台中的密钥复制并粘贴到secrets.yml的正确位置并保存了吗?只要两个密钥都在那里,至少有30个字符长(如果您使用了rake secret,则长度为128个字符),您就应该全部设置好。我假设您的secrets.yml文件位于config/中

此外,弃用警告是警告而不是错误。只要钥匙在秘密中,你就不必做任何其他事情。运行rake secret并用新密钥替换密钥是不必要的,只要您有密钥(至少30个字符),那么密钥是什么并不重要


希望这有帮助。如果您仍然有困难,请发布运行时错误,希望它能提供更多关于错误的信息。

这不太可能是您的问题,但我在这个问题上花了几个小时,这也给了我相同的错误消息,即没有为生产rails服务器启动设置“secret\u key\u base”。 我在跑步。4.2.5.1,Ruby版本。WEBrick 1.3.1,开发和生产服务器在CentOS 6.6 Linux机箱上实验运行。我的错误完全是新手的事。。 根据Rails文档和其他Stackoverflow报告,我已经按照步骤为生产配置了SECRET_BASE_密钥,并且正在使用secrets.yml文件,使用环境变量设置密钥。但我在启动生产服务器时使用了: bin/rails服务器--binding=0.0.0.0-p3000-e=production 这是错误的。缩写形式“-e”参数没有等号。但是我得到的错误是因为secrets.yml文件中的代码正在查找一个名为“=production:”,标签是“production:”。在生产模式下启动服务器的正确表达式当然是: bin/rails服务器——绑定=0.0.0.0-p3000-e生产 另一个线索是服务器报告“config.eager_load”被设置为nil,而实际上它被配置为在../config/environments/production.rb文件中设置。
希望这对别人有帮助。我是Rails+Ruby的新手,但我终于有了一个以生产模式运行的测试台服务器,并按照预期应用了各种配置设置。

他的意思是,他很可能使用
rake secret
生成了新密钥,并将它们复制粘贴到secrets.yml