/config/initializers/secret_token.rb未生成。 为什么不?

目前正在通过rails教程,我需要对/config/initializers/secret_token.rb进行一些修改,但是,我无法在initializers目录中的任何位置找到此文件。 我正在运行最新版本的rails。 这是我在终端中用来创建rails项目的行:

 rails new sample_app 

有谁知道为什么它没有出现?

您正在查看的教程可能是针对较旧版本的Rails编写的,而不是您正在使用的。

secret_token.rb存在于Rails 3和Rails 4.0应用程序中; 它在Rails 4.1应用程序中不存在。

它已在Rails 4.1中被secrets.yml文件替换:

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

感谢您指出了这一点。 问题可能是由于使用Rails 4.1而不是Rails教程中指定的Rails 4.0。 这是因为第1.2.2节所述的问题(粗体原文)

除非另有说明,否则您应该使用本教程中使用的所有软件的确切版本,包括Rails本身,如果您想要相同的结果。

要使工作正常,首先卸载当前版本的Rails:

 $ gem uninstall rails railties 

然后按照教程中的说明完全按照说明安装Rails 4.0:

 $ gem install rails --version 4.0.4 

生成测试应用程序(为方便起见跳过Bundler)并通过grep管道输出然后validation是否生成了secret_token.rb

 $ rails -v Rails 4.0.4 $ rails new test_app --skip-bundle | grep secret_token create config/initializers/secret_token.rb 

此时,您应该能够按照所写的教程的其余部分进行操作。

顺便说一句,我即将开始编写本教程的第3版,并计划将此问题作为更一般更新的一部分来处理。

我正在使用4.1.1。 不要将任何内容复制到secrets.yml,只是不要忘记更新gitignore文件( http://www.railstutorial.org/book/beginning#code-gitignore

有了这个,你可以继续学习本教程