【问题标题】:Rails upgrade error A secret is required to generate an integrity hashRails 升级错误 A secret is required to generate an integrity hash
【发布时间】:2013-12-24 21:17:29
【问题描述】:

所以我刚刚从 Ruby 1.8.7 升级到 1.9.3。然后从 rails 2.3.18 到 rails 3.0.20 但我遇到了这个错误

需要一个秘密来为 cookie 会话数据生成一个完整性哈希。在 config/initializers/secret_token.rb 中使用 config.secret_token = "some secret phrase of at least 30 characters"

我已经搜索并看到了所有关于这个的问题,说你需要添加

MyApp::Application.config.secret_token = 'secret'

我的 config/initializers/secret_token.rb 中有这个。还有什么可能给我这个错误?

我也有:

MyApp::Application.config.session_store :cookie_store, :key => 'some_key'

在我的 config/initializers/session_store.rb 中

我相信我可能在升级过程中遗漏了导致此错误的某些内容?

编辑

我在我的环境中缺少这个。rb

TheHockeyCommunity::Application.initialize!

现在它工作正常!

干杯

【问题讨论】:

  • 您的 secret_token.rb 中真的有 MyApp::Application.config.secret_token = 'secret' 吗?因为'secret' 至少不是 30 个字符。
  • 大声笑没有秘密是 128 字符密钥,some_key 也不同
  • 好酷,只是想检查一下! :) 另一个愚蠢的检查:自从编辑该文件后,您已经重新启动了服务器,对吧?我发现的唯一其他可能是这个讨厌的错误:github.com/rails/rails/issues/4652
  • 是的,重启了很多次。我会检查那个错误谢谢!

标签: ruby-on-rails ruby-on-rails-3 rails-3-upgrade


【解决方案1】:

很可能您错过了 Rails 3 中需要的对配置文件的一些更改,并且您的初始化程序未包含在内。我最近做了同样的升级,你可以check my changes。那里有很多对您没有用处的更改,但请注意对应用程序根目录和config 下文件的任何更改。

另外,请确保您的应用名称(与 config/environment.rb 中的 initialize! 行匹配)而不是“MyApp”。

【讨论】:

  • 是的,应用名称匹配,我会检查你的提交,看看我错过了什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-11-30
  • 2020-10-15
  • 2022-01-08
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多