2013-10-04 76 views
1

在nil上調用id會在我的開發環境中給出錯誤,但在生產中會默默返回4.開發人員可能不會意識到這一點。爲什麼生產中的whiny_nils默認設置爲false?

那麼,是否有任何具體原因,爲什麼在生產環境中whiny_nils默認設置爲true?

如果我們在生產中將其設置爲true,是否會有任何問題?

+0

@NARKOZ意外的行爲更好,我用的, 紅寶石1.8.7(2012- 01-04 mbari 8/0x8770在patchlevel 357上)[i486-linux] Rails 3.0.20 – Virtual

+0

你在使用'rescue'模塊嗎?任何類似於此的任何代碼? 'Rails.env.production?' – AdamT

回答

0

調用上nil方法是whiny_nils抱怨往往表明無論是在代碼或錯誤與它正在運行中的數據的問題 - 這是nil,開發商沒有想到的是。在開發環境中,要做的事情是讓開發人員知道這一點,以便他們可以檢查是否應該這樣做。 然而,生產代碼希望運行的錯誤儘可能少,所以默認的假設是,如果你打電話.idnil,這是故意的,你知道你在做什麼 - 這不是一個語法錯誤,所以我們放手吧。

如果您在生產時將whiny_nils設置爲true,那麼您的生產站點可能會出現更多錯誤,這顯然是一個問題。在另一方面,如果你不是故意呼籲nil.id,也許看到錯誤一個用戶是比正從nil.id是4

相關問題