根据用户配置文件设置格式化日期

时间:2011-08-22 02:27:47

标签: ruby-on-rails

我们的应用程序的每个用户可以使用不同的日期和时间格式。我知道日期格式取决于用户的语言和可能的时区。

我想我可以尝试在ApplicationController中运行Date::DATE_FORMATS[:default] = "%m/%d/%Y"之类的东西。在这种情况下,Date.today.to_s将返回属性格式化日期。它是线程安全的吗?

我看到的另一个选项是将个人资料存储到config/locales/en.yml,使用en_USen_GBen_...等不同的密钥,并将区域设置名称存储到用户的个人资料中。在这种情况下,我将需要使用I18n.localize格式化日期。如果在特定en中找不到密钥,是否可以回退到en_US

1 个答案:

答案 0 :(得分:1)

对于Date::DATE_FORMATSTIME::DATE_FORMATS,不幸的是,您需要特别注意使其使用线程安全。但是,不应该太难做到。

对于您的第二个问题,我相信您关注的是区域设置回退和i18n gem has support for locale fallbacks。使用以下功能可以轻松启用此功能:

I18n::Backend::Simple.include(I18n::Backend::Fallbacks)