1

У меня есть модель с атрибутом, который должен быть только численным. Поэтому я добавилПроверка до неявного литья

validate :attribute, numericality: true 

Если я пытаюсь создать новый объект этого типа в консоли дает строку «ABC» для этого атрибута, я получил его конвертирован в 0 еще до проверки его. Поэтому у меня нет никаких ошибок.

Возможно ли избежать неявного броска или, по крайней мере, до его проверки? Я также попытался добавить: on: создать при предыдущей проверке, но это не сработало.

ответ

0
before_validation(on: :create) do 
     if attribute_present?("number") 
     ##process ahead with self.number 
     end 
    end 
+0

Это не работает, неявное преобразование выполняется в любом случае .. – user3702916

+0

Привет @ user3702916, я обновил свой ответ, дайте ему попробовать – Milind

+0

это то, что я пытаюсь: before_validation (на:: создать) do если нет self.attribute.is_a? Числовой self.errors [: attribute] << "атрибут должен быть числом" конец конец он все еще не работает – user3702916

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