2013-08-07 53 views
0

我在新的Rails應用程序中遇到這個錯誤,它讓我有點困惑。我可以啓動rails服務器並加載索引頁面,但是當我嘗試加載任何其他頁面時,我會得到Rails應用程序中的祕密令牌錯誤

ArguemntError:需要祕密來爲cookie會話數據生成完整性哈希。在配置/初始化程序/ secret_token.rb中使用config.secret_token =「一些至少30個字符的祕密短語」

現在令我感到奇怪的是,我已驗證我確實有一個.secret文件。我修改了secret_token.rb文件以根據Mike Hartl教程生成一個隨機的.secret文件。我檢查過.secret文件確實存在。實際上,我刪除了它並重新啓動了服務器,以確保它會生成一個新的服務器,並且它已經完成。 .secret文件的內容確實包含大於30個字符的字符串。但我正在收到這個錯誤。我不確定我在這裏錯過了什麼。

我做了一些Google搜索,看起來有些人覺得這個錯誤與啓動服務器後很快訪問該站點導致的競態條件有關。我重新啓動服務器,等待五分鐘,然後訪問該站點。同樣的問題。我無法理解爲什麼我得到這個錯誤。任何幫助將不勝感激。

+0

這是在軌道3或4?在Rails 4中我的行secret_token.rb是AppName :: Application.config.secret_key_base ='XXXXX' –

+0

這是默認值,是的。但是,它並不是非常安全,特別是在使用存儲庫(如gitHub)時。關鍵是要擺脫硬編碼的標記。 –

+0

哦,對不起,我錯過了你說你修改它的那部分。你有沒有確保AppName確實是你的應用程序的名稱?你可以嘗試違約回到正常的方法,看看是否仍然發生錯誤,以縮小它在該函數內的錯誤或更大的東西。 –

回答

0

我不得不secret_token.rb的最後一行從切換:

SampleApp::Application.config.secret_key_base = secure_token 

到:

Todo::Application.config.secret_token = secure_token 

接手了,雖然讀的錯誤消息。

0

請確保您有這個在你的environment.rb:

YourApp::Application.initialize! 
相關問題