问题
mm/dd/yyyy
插入日期格式。 dd/mm/yyyy
格式。 例子
03/12/2012
,Rails 将其解释为 2012 年 12 月 3 日。03/20/2012
, 这被 Rails 解释为 的第 3 天第20个月 2012 年。由于该日期不存在,Rails 将其转换为 nil
值(value)(我认为)。 题
如何更改 Rails 在解析此日期文本字段时使用的日期格式?
笔记:
1)我不想更改日期选择器插入文本字段的日期格式,
2)我不是问在 View 中显示我的日期属性。
最佳答案
我最初认为这可以通过 Rails 国际化功能解决,但事实证明我错了。
从 Ruby 1.9 开始,日期解析的标准格式是 dd/mm/yyyy
,以便更好地容纳国际用户。更多详情请见 this SO answer .
该标准在 Rails 中维护,如 Date.parse
现在用于处理来自表单输入的数据。使用 before_validation
回调将不起作用,因为该字段将被接收为 nil
通过回调方法。
现在有两个 gem 处理这个特定问题,即 Rails 中的日期解析不遵循 I18n.locale
中的语言环境设置。 .两者似乎都运作良好。
关于ruby-on-rails-3 - 解析表单中文本字段的日期时,如何更改 ActiveRecord 期望的格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15531786/