У меня есть модель с атрибутом даты. Я построил пользовательскую проверку с использованием [attribute] _before_type_cast, так что дата, например «31 .02.2013», приведет к отказу проверки.Показывать недопустимый атрибут перед типом cast
Проблема заключается в том, что:
@invoice.order_date = '31.02.2013'
@invoice.order_date #=> Sun Mar 03 00:00:00 +0100 2013
Так на пользователя вид слоя получает сообщение о недопустимой дате, но недействительный атрибут автоматически изменяется на 03.03.2013, которая Infact правильная дата, так что это своего рода не -смысл.
Есть ли способ остановить этот type_cast и отобразить этот атрибут с недопустимой датой?
Какой смысл отмечать его как недействительный, если он действительно работает? – alf
Валидация работает. Однако пользователь видит сообщение об ошибке о неверной дате, но дата в текстовом поле верна. Благодаря механизму конвертации даты Ruby. –
Если вы используете недопустимую дату, RAILS имеет тенденцию принуждать эту недействительную дату к действительной дате, что может действительно испортить процессы хранения данных и соответствия нормативным требованиям в ряде отраслей. –