Ruby on Rails config.secret_token错误

我刚开始在铁轨上学习ruby。 我遵循了很多安装示例,但是当我运行示例时出现此错误

需要一个秘密来为cookie会话数据生成完整性哈希。 在config / initializers / secret_token.rb中使用config.secret_token =“至少30个字符的一些秘密短语”

我搜索它,但我没有看到太多的帮助。

请帮助。

平台:Mac OS X.

生成新秘密令牌的最简单方法是运行

rake secret 

在命令行。

您的令牌应该由Rails自动生成,但您仍然可以使用以下内容:

 irb(main):007:0> "#{ActiveSupport::SecureRandom.hex(64)}" => "921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9" 

意思是,你可以生成一些随机字符串并将其放入config/initializers/secret_token.rb文件中:

 # Be sure to restart your server when you modify this file. Yourapp::Application.config.secret_token = '921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9' 

这可能是rails版本的问题。 当我卸载Rails 4并安装Rails 3时遇到了这个问题。在检查rails -v并看到它确实是Rails 3之后,我执行了rails new myapp。 由于某种原因,配置文件config / initializers / secret_token.rb定义了“config.secret_key_base”变量,这似乎是Rails 4的工作方式。 我能够通过将其更改为“config.secret_token”来修复它,我认为这是Rails 3使用的。

这个简单的命令对我有用:

 rvmsudo rake generate_secret_token 

确保你的环境中有这个.rb:

 YourApp::Application.initialize! 

进入同样的问题,发现我的.gitignore文件中的git忽略了我的config / initializers / secret_token.rb文件。 查看git源位置中的config / initializers目录,确保secret_token.rb文件存在。 如果它不编辑您的.gitignore文件,那么git将不会忽略secret_token.rb文件并提交您的更改(通常是隐藏的 – 我使用这些简单的命令在Mac上显示隐藏文件http://osxdaily.com/2009 / 02/25 / show-hidden-files-in-os-x / )。