2012-12-02 76 views
3

編輯一些代碼(任何代碼)後,我只在開發環境得到這個錯誤,然後按刷新查看更改。Rails奇怪的堆棧級別太深和路由錯誤

每次發生這種情況會引發錯誤說「堆棧級別太深」然後當我刷新agains提高「路由錯誤」的頁面。然後,我無法瀏覽任何頁面,直到我重新啓動服務器。

我將不得不停止Rails服務器,然後再次啓動它,然後它會工作,直到我再次更改代碼。

我嘗試了幾種方法,包括增加ulimit「ulimit -s」命令,但沒有解決問題。我搜索到這與無限循環有關,但在我的情況下,它與代碼無關,因爲重新啓動服務器後錯誤消失。

任何線索或解決方案將不勝感激。謝謝。

編輯:添加的routes.rb和堆棧跟蹤

路線:http://pastebin.com/YzXyUH35

堆棧跟蹤:

SystemStackError (stack level too deep): 
    actionpack (3.2.8) lib/action_dispatch/middleware/reloader.rb:70 


    Rendered /Users/duy/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.5ms) 
    Rendered /Users/duy/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (1.3ms) 
    Rendered /Users/duy/.rvm/gems/ruby-1.9.3-p194/gems/actionpack-3.2.8/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (19.9ms) 
+0

可能是您的路線問題。你能列出來嗎? –

+0

也發佈堆棧跟蹤。 –

+0

我添加了路線文件和堆棧跟蹤。謝謝 – duy

回答

1

請改變你的會話存儲到活動記錄商店或config.cache_store = :dalli_storedalli GEM)而不是cookie存儲。

+0

我使用Mongoid和Memcached和Dalli Gem。謝謝。 – duy

+1

你見過這篇文章http://stackoverflow.com/questions/10464793/what-is-the-right-way-to-override-a-setter-method-in-ruby-on-rails。這可能是因爲模型方法循環,​​因此在加載模型文件本身時會產生(堆棧層太深)錯誤。 –