2011-08-08 125 views
1

下降到調試比方說,foo被創建,修改和程序運行時節省很多時間。在Rails,如何當條件滿足

通常,foo.bar == "sensible value",但偶爾,foo.bar == "crazy value"

有什麼方法可以運行rails server --debugger,並且只有在foo.bar == "crazy value"的位置才能進入調試控制檯?

回答

2

你試過

if foo.bar == "crazy value" 
    require 'ruby-debug'; debugger 
end 

這應該放置在運行bundle exec rails server通常觸發一個斷點,只有當foo.bar的值是您(不)想。

如果使用的是捆綁和Ruby 1.9確保你有

gem 'ruby-debug19', :require => 'ruby-debug' 
在你的Gemfile

(開發和測試組)。

+0

嗨,謝謝。是的,我想到了一個有條件的斷點,如果我有一個強烈的預感foo.bar被設置爲「瘋狂的價值」,那麼我會使用它。然而,我並沒有這麼做,所以我希望從整個應用程序中的任何一點將foo.bar設置爲「瘋狂價值」,從而進入調試器。那可能嗎? –

+2

爲foo.bar定義setter,並將答案放在答案中。 – iafonov