为什么生产中的whiny_nils默认设置为false?

时间:2013-10-04 04:28:00

标签: ruby-on-rails ruby-on-rails-3

在我的开发环境中调用nil上的id会出错,但是在生产中它会默默地返回4. Developer可能会意识不到这一点。

那么,有什么特别的原因,为什么whiny_nils在生产环境中默认没有设置为true?

如果我们在生产中将其设置为true,是否会有任何问题?

1 个答案:

答案 0 :(得分:0)

调用nil whiny_nils抱怨的nil上的方法通常表示代码中存在错误或者运行的数据存在问题 - 有些问题.id开发人员没想到会。在开发环境中,要做的事情是让开发人员知道这一点,以便他们可以检查是否应该这样做。 但是,生产代码希望尽可能少地运行错误,因此默认情况下,如果您在nil上调用whiny_nils,那么这是故意的,您知道自己在做什么 - 这不是语法错误,所以我们放手。

如果您在制作时将true设置为.id,那么您的制作网站可能会遇到更多错误,这显然是一个问题。另一方面,如果您没有故意在nil上调用nil.id,则可能是用户看到错误比从{{1}}获得意外行为更好。