2014-07-15 39 views
3

在生產環境中運行我的Rails 4.1的項目時,我得到了以下錯誤:軌道4 - 「Fixnum對象轉換成String的隱式轉換」 - 錯誤只發生在生產

ActionView::Template::Error (no implicit conversion of Fixnum into String): 
8:  %meta{content: "", name: "description"}/ 
9:  %meta{content: "", name: "author"}/ 
10:  = stylesheet_link_tag 'application', media: 'all' 
11:  = csrf_meta_tags 
12: %body 
13:  .header.navbar.navbar-inverse 
14:  = render 'layouts/header' 

什麼沒有任何意義我認爲一切正常,在開發中,上面的錯誤真的讓我不知道什麼是實際錯誤(沒有特定的行號),HAML模板中沒有任何東西出現在我身上。

我也得到當我UsersController下面的代碼運行一個類似的錯誤:

@user = User.last 

再次,工作在發展得很好,但在生產它告訴我類型錯誤(Fixnum對象的隱式轉換成字符串)

我可以俯視嗎?我沒有看到任何需要進行類型轉換的內容。

註釋掉我提到的最後一行不會影響其他錯誤。

+0

剛剛啓動服務器或嘗試訪問特定網頁時是否出現此錯誤? – MCBama

+0

可能是在預編譯資源中發生了某種改變。你可以嘗試用'rake assets:precompile'來重建那些。記住,在生產模式下,你必須觸摸tmp/restart.txt,以使任何更改生效,甚至視圖。 – tadman

回答

8

我想出了我自己的想法。

我在secrets.yml中爲生產製作的secret_key_base只包含數字;顯然YAML(或Ruby的實現)自動將其解釋爲一個整數,並且secret_key_base必須是一個字符串。也許關鍵基地也需要字母數字。我不確定。

我希望Rails只是在secret_key_base上做了一次類型轉換,所以我不必浪費一半的工作時間來解決問題。至少,有一個相關的警告,而不是一個神祕的錯誤,並不指向任何方向,本來是很好的。

相關問題