我的用户表单中有一个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)并将月份和年份放在今天的日期(因此它将是 2013 年 9 月 27 日而不是 1987 年 1 月 27 日)。