ruby-on-rails-3 – Rails i18n.default_locale和日期格式……似乎没有表现得像默认

除非我另有说法,否则我希望Rails(3.2)使用美国日期格式03/14/2012.

我安装了I18n gem,下载(并修改)了config / locales / en-US.yml文件,默认格式为默认格式: ‘%m /%d /%Y’,将我的application.rb默认语言环境设置为config.i18n.default_locale =“en-US”,然后重新启动.

显示日期(例如简单视图)时,它们的格式仍为2012-03-14.如果我使用I18n.l方法,日期将根据需要显示,03/14/2012.因此本地化正在通过I18n课程.

我想我期待“默认”的含义是,“如果你没有被告知要进行本地化或翻译,那就是使用它.”显然我预料错了:-)

因此,进一步的挖掘显示我可以在初始化程序中更改日期和时间的默认值,例如config / initializers / date_formats.rb,例如

Date::DATE_FORMATS[:default]="%m/%d/%Y"
Time::DATE_FORMATS[:default]="%m/%d/%Y %H:%M"

这似乎做我想要的.几个警告帖子表明,这将搞砸数据库中日期的存储方式,但我的测试(使用PostgreSQL)表明这不是问题.

所以(咆哮)为什么所有应用程序都不应该观察默认的语言环境而不用l和t帮助器包裹地球表面上的每个日期?

并且(实际问题)我会通过在初始化程序中更改我的应用程序的默认日期和时间格式来对我自己或他人造成永久性伤害吗?

最佳答案 我有同样的问题,这个宝石帮了我
https://github.com/jeremyevans/ruby-american_date

只需将其添加到您的Gemfile,无需任何设置

点赞