Rails 3 - "to_f" исправляет проблему, но я не уверен почему - PullRequest
0 голосов
/ 10 ноября 2011

В моей модели отчетов есть атрибут с именем: total. В представлении Отчеты я показываю последние 4 записи этого: общий атрибут (из предыдущих отчетов) на диаграмме. Я обнаружил, что когда не было предыдущей записи, диаграмма не отображалась. Когда я вернулся и добавил «to_f» к расчету, график отобразился и просто показал «0» там, где не было записи. Я рад, что это сработало, но это было просто дикое предположение. Почему это работает?

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Ваши значения были, вероятно, ноль. Я предполагаю, что ваш форматер не был заинтересован в работе с NILS. Тем не менее, nil реализует .to_f, который возвращает 0.0, который ваш форматтер мог бы обработать без сбоев.

т.е.

nil.to_f # => 0.0
1 голос
/ 10 ноября 2011

Не видя вашего кода, все, что я могу сделать, это угадать.

Я предполагаю, что report.total был равен нулю для некоторых отчетов в вашей базе данных, и любой код, который вы используете для построения диаграмм, не может обрабатывать значения nil.

Например, nil/2 сгенерирует исключение, но nil.to_f/2 не сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...