В валидаторе используется переменная с именем raw_value
.Он пытается получить это необработанное значение из вашего объекта, проверьте строки с 35 по 38.
Я полагаю, вы можете определить метод в вашей модели, используя имя вашего атрибута с "_before_type_cast", чтобы вернуть числовое значение, которое валидаторможно использовать.
Если ваш атрибут вызывается, скажем, amount
, вы можете сделать:
def amount_before_type_cast
amount.to_number
end
Затем вам нужно будет определить метод для вашего пользовательского типа, чтобы повернутьэто в число, может быть что-то вроде:
def to_number
value.gsub(/\D/,'').to_i #remove all non-digit and turn it into an integer
end