【问题标题】:Change date format in Rails validates_timeliness error messages在 Rails 中更改日期格式 validates_timeliness 错误消息
【发布时间】:2016-02-19 23:39:16
【问题描述】:

validates_timeliness gem 表示它支持 I18n 的错误消息。但是,我找不到任何配置(或文档)来告诉我如何修改它生成的错误消息的日期格式。

在 gem 的 validator.rb 文件中有一个 DEFAULT_ERROR_VALUE_FORMATS。但是,我不想要全局更改——我需要为每个区域设置错误消息的格式。

我尝试将相关的 I18n 日期格式块添加到我的应用程序的 config/locales 语言文件中,如下所示:

en:
  date:
    formats:
      default: "%d/%m/%Y"

但是,服务器重启后就没有效果了。

所以我的问题是:如何将特定于语言环境的日期应用于 validates_timeliness gem 生成的错误消息?

【问题讨论】:

    标签: ruby-on-rails internationalization rails-i18n


    【解决方案1】:

    我发现validates_timeliness 有自己的语言环境块,它在lib/generators/validates_timeliness/templates/en.yml 中定义,要更改格式,您需要覆盖该块。

    将以下块添加到应用程序的config/locales 目录中的语言环境文件:

    en:
      validates_timeliness:
        error_value_formats:
          date: '%m/%d/%Y'
          time: '%H:%M:%S'
          datetime: '%m/%d/%Y %H:%M:%S'
    

    格式化部分可以是任何有效的strftime-格式化字符串。

    这个答案特别适用于 Rails 3.2 和 validates_timeliness 3.0.14 环境,但可能普遍适用。

    【讨论】:

      猜你喜欢
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多