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

Sam*_*D20 10 ruby ruby-on-rails

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

rails new sample_app 
Run Code Online (Sandbox Code Playgroud)

任何人都知道它为什么没有出现?

mha*_*rtl 17

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

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

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

$ gem uninstall rails railties
Run Code Online (Sandbox Code Playgroud)

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

$ gem install rails --version 4.0.4
Run Code Online (Sandbox Code Playgroud)

生成一个测试应用程序(为方便起见跳过Bundler)并通过管道输出grep然后验证secret_token.rb生成的内容:

$ rails -v
Rails 4.0.4
$ rails new test_app --skip-bundle | grep secret_token
      create  config/initializers/secret_token.rb
Run Code Online (Sandbox Code Playgroud)

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

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


sev*_*cat 14

您正在查看的教程可能是针对较旧版本的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 4本身,已经从secret_token.rb转变为secrets.yml. (2认同)