У меня есть text_field :birthday_line
в моей пользовательской форме, которую мне нужно проанализировать в атрибуте пользователя birthday
. Итак, я делаю что-то подобное в своем классе User
.
attr_accessor :birthday_line
before_save :set_birthday
def set_birthday
self.birthday = Date.strptime(birthday_line, I18n.translate("date.formats.default")
end
Но проблема в том, что по какой-то причине мне выдается сообщение об ошибке Invalid date
, когда я пытаюсь передать строку 27 января 1987 г.
, которая должна быть проанализирована до 1987-01-27
. Формат и названия месяцев в моем config/locales/ru.yml
ru:
date:
formats:
default: "%d %B %Y г."
month_names: [~, января, февраля, марта, апреля, мая, июня, июля, августа, сентября, октября, ноября, декабря]
кажется правильным.
Date.parse
также не помогает, он просто анализирует номер дня (27) и помещает месяц и год в текущую дату (так что это будет 27 сентября 2013 года вместо 27 января 1987 года).
delocalize
, но он все еще не поддерживается Rails 4. - person Almaron   schedule 12.09.2013