2016-02-19 58 views
0

gem表示它支持I18n的錯誤消息。但是,我找不到任何配置(或文檔)來向我顯示如何修改它生成的錯誤消息的日期格式。在Rails validates_timeliness錯誤消息中更改日期格式

寶石的validator.rb文件中有一個DEFAULT_ERROR_VALUE_FORMATS。但是,我不希望全局更改 - 我需要爲每個區域設置格式錯誤消息。

我試着加入相關的I18n日期格式塊到我的應用程序的config/locales語言文件,就像這樣:

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

但是,具有服務器重啓後沒有效果。

所以我的問題:我如何將一個特定於語言環境的日期應用於validates_timeliness gem生成的錯誤消息?

回答

1

我發現validates_timeliness有它自己的語言環境塊,它在lib/generators/validates_timeliness/templates/en.yml中定義,並且要更改格式,您需要覆蓋該塊。

以下塊添加到您的應用程序的config/locales目錄的區域設置文件(S):

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環境,但一般可能適用。