拒绝警告:您没有设置config.secret_key_base

运行我的规格时收到此警告。 生成secret_key_base是否有最佳做法,或者是否有足够的string(关于安全性问题)?

你可以从3.x或以前的版本升级到Rails 4。

首先生成一个随机的密钥值:

$ rake secret 

然后把这个值放到config/initializers/secret_token.rb

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

用您的应用程序的名称replaceYourApp

这里解释的原因。

另见http://guides.rubyonrails.org/upgrading_ruby_on_rails.html#config-secrets-yml

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

你只需要在config / initializers目录下创build一个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 

您现在将会看到上一章中您看到的基本导轨应用程序页面(如果您正在通过Hartl的教程进行操作)

如果你是像我这样的总喜欢的人,记得把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:在`load'中:C:/ Users / Jeff C / documents / rails_proje cts / first_app / config / initializers / secret_token.rb:1:语法错误,意外tI DENTIFIER,期待$ end(SyntaxError)