Ruby on rails Rails应用程序中的秘密令牌错误

Ruby on rails Rails应用程序中的秘密令牌错误,ruby-on-rails,token,Ruby On Rails,Token,我在一个新的Rails应用程序中遇到了这个错误,这让我有点困惑。我可以启动rails服务器并加载索引页面,但是当我尝试加载任何其他页面时,我会发现 ArguemntError:为cookie会话数据生成完整性哈希需要一个秘密。在config/initializers/secret_-token.rb中使用config.secret_-token=“一些至少30个字符的秘密短语” 奇怪的是,我已经验证了我确实有一个.secret文件。根据Mike Hartl教程,我修改了secret_token.

我在一个新的Rails应用程序中遇到了这个错误,这让我有点困惑。我可以启动rails服务器并加载索引页面,但是当我尝试加载任何其他页面时,我会发现

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

奇怪的是,我已经验证了我确实有一个.secret文件。根据Mike Hartl教程,我修改了secret_token.rb文件以生成一个随机的.secret文件。我已检查.secret文件是否确实存在。事实上,我删除了它并重新启动了服务器,只是为了确保它会生成一个新的,它做到了。.secret文件的内容确实包含超过30个字符的字符串。然而我却犯了这个错误。我不确定我错过了什么


我在谷歌上搜索了一下,似乎有人觉得这个错误与启动服务器后过早访问该站点导致的竞争条件有关。我重新启动了服务器,等待了五分钟,然后访问了该站点。同样的问题。我不明白为什么我会犯这个错误。任何帮助都将不胜感激。

我不得不将secret_token.rb的最后一行从:

SampleApp::Application.config.secret_key_base = secure_token
致:


尽管如此,我还是反复阅读了错误消息。

请确保您的环境中有此信息。rb:

YourApp::Application.initialize!

这是在轨道3还是轨道4上?在Rails 4中,我的行secret\u token.rb是AppName::Application.config.secret\u key\u base='XXXXX',这是默认值,是的。但是,它不是很安全,特别是当您使用诸如gitHub之类的存储库时。重点是不要使用硬编码的代币。哦,很抱歉,我错过了你说你修改它的部分。您是否确保AppName确实是您应用程序的名称?您是否可以尝试将默认值恢复到正常方法,并查看是否仍然发生错误,从而将其缩小到该函数中的错误或更大的错误。@Althafameez,我认为Rails 4中不再生成secret_token.rb?这就是秘密。yml是什么取代了它?我们对待secrets.yml和secret_token.rb一样吗?这部分我有点结巴。
YourApp::Application.initialize!