ruby-on-rails 导轨:DEPRECATION警告:您没有设置config.secret_key_base

zdwk9cvp  于 2023-05-19  发布在  Ruby
关注(0)|答案(5)|浏览(181)

运行规格时收到此警告。是否有生成secret_key_base的最佳实践,或者任何字符串都足够(考虑到安全问题)?

ds97pgxw

ds97pgxw1#

您可能从3.x或以前的版本升级到了Rails 4。
首先生成一个随机密钥值:

$ bundle exec rake secret

然后将该值放入config/initializers/secret_token.rb中:

YourApp::Application.config.secret_key_base = 'your-secret'

YourApp替换为应用程序的名称。
其原因在这里解释。
另见http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

p5cysglq

p5cysglq2#

从4.1开始,您需要使用config/secrets.yml文件。这在www.example.com中讨论http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml。

0mkxixxg

0mkxixxg3#

您只需要在config/initializers目录中创建一个secret_token.rb文件。
文件内容如下:

YourAppNameHere::Application.config.secret_key_base = #type the key you generated with rake secret here

然后保存文件

close your server: 
ctrl c

restart it: rails s

现在,您将看到上一章中看到的基本Rails应用程序页面(如果您正在学习Hartl的教程)

wqlqzqxt

wqlqzqxt4#

如果你和我一样是个菜鸟,记得把secret_key_base = 'whatever'放在单引号里。只是复制和粘贴没有引号将抛出错误:
C:/RailsInstaller/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activesupport-4.0.8/lib/act ive_support/dependencies.rb:223:in `load ':C:/Users/Jeff C/documents/rails_proje cts/first_app/config/initializers/secret_token.rb:1:语法错误,意外的tI DENTIFIER,需要$end(SyntaxError)

nhjlsmyf

nhjlsmyf5#

在使用升级到Rails 5Rails 4应用程序时遇到了同样的问题。
我所要做的就是运行下面的命令来生成一个secret key

bundle exec rake secret

然后我将密钥添加到config/secret.yml文件中:

development:
  secret_key_base: 21bc6137d0496a2a11f4459a7c7deb4f782d223d41ee328934b2fe7a405a42ec63eb3829db67f0ec6a759e134ba0bb15dc2d01168b64d83efcf8d42b403ac8bd

相关问题