2011-08-22 66 views
0

我們的應用程序的每個用戶可以有不同的日期和時間格式。我瞭解日期格式取決於用戶的語言和可能的時區。格式化日期根據用戶配置文件設置

我想我可以嘗試在ApplicationController中運行諸如Date::DATE_FORMATS[:default] = "%m/%d/%Y"之類的東西。在這種情況下,Date.today.to_s將返回屬性格式化日期。它會是線程安全的嗎?

我在看另一個選擇是配置文件存儲到config/locales/en.yml使用不同的密鑰像en_USen_GBen_...和存儲區域名稱到用戶的個人資料。在這種情況下,我將需要使用I18n.localize來格式化日期。如果在特定的en_US中找不到密鑰,是否有可能回退到en

回答

1

Date::DATE_FORMATSTIME::DATE_FORMATS的情況下,不幸的是,您需要格外小心,以使其使用線程安全。但是,不應該太難做。

因爲你的第二個問題,我相信你關注的是語言環境回退以及i18n gem has support for locale fallbacks。此功能很容易啓用:

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