Ruby on Rails config.secret_token错误

Leo*_*lla 10 ruby ruby-on-rails ruby-on-rails-3

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

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

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

请帮助.

平台:Mac OS X.

all*_*lar 34

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

rake secret
Run Code Online (Sandbox Code Playgroud)

在命令行.


Vla*_*ich 10

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

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

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

# Be sure to restart your server when you modify this file.

Yourapp::Application.config.secret_token = '921b00fcfabe0368d70627020f3b4c969cfd9bdc2474f4040c1ae976f687014694beb5d36dfc0c41bac8ebde96a14fceaee228d6e34d8183c5d7cc99d310d4f9'
Run Code Online (Sandbox Code Playgroud)

  • 在Rails 3.2中,ActiveSupport :: SecureRandom不再有效.它现在只是SecureRandom.看起来像这样,"#{SecureRandom.hex(64)}" (8认同)