Как использовать validates_numericity_of с десятичным полем? - PullRequest
1 голос
/ 12 мая 2011

У меня есть таблица с колонкой (дозой), которая определяется как десятичная дробь. Когда пользователь заполняет поле формы для этого столбца, я хочу убедиться, что он вводит правильный номер. Я хочу использовать validates_numericality_of :dose, но это не работает. Если пользователь вводит нечисловое значение (например, «лошадь»), значение 0 сохраняется в базе данных, и проверка проходит. Я бы предпочел, чтобы была поднята ошибка.

Есть ли способ уловить это раньше в жизненном цикле объекта? В какой момент активная запись конвертирует строку в 0?

1 Ответ

1 голос
/ 12 мая 2011

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

Чтобы, возможно, получить более глубокое понимание ситуации, добавьте before_validationподключитесь к модели и поднимите self.inspect, чтобы увидеть, как выглядит объект прямо перед срабатыванием проверок.Попробуйте сохранить экземпляр с текстом в атрибуте: доза и посмотрите, как он выглядит.

...