2013-10-04 6 views
1

Вызов id на nil дал ошибку в моей среде разработки, но в производстве он тихо возвращается 4. Разработчик может не знать об этом.Почему у whiny_nils в производстве установлено значение false по умолчанию?

Итак, есть ли какая-то конкретная причина, почему значение параметра whiny_nils по умолчанию не установлено в рабочей среде?

Будут ли возникнут какие-либо проблемы, если мы установим их в соответствие с производством?

+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, что разработчик не ожидал, что будет. В среде разработки то, что нужно сделать, это позволить разработчику узнать об этом, чтобы они могли проверить, должно ли оно это делать. Код продукта, однако, хочет работать с максимально возможной ошибкой, поэтому по умолчанию предполагается, что если вы вызываете .id на nil, это намеренно, и вы знаете, что делаете - это не синтаксическая ошибка, поэтому мы отпустили его.

Если вы установили whiny_nils на номер true, вы, вероятно, получите больше ошибок на своем производственном сайте, что, очевидно, является проблемой. С другой стороны, если вы намеренно не вызывая .id на nil, возможно, пользователь видит ошибку лучше, чем получить неожиданное поведение от nil.id будучи 4.

Смежные вопросы