2008年04月17日

ActiveSupportの標準日付表示形式を変更する

Rubyの標準のDateクラスをRailsの一部であるActiveSupportで拡張していますが、そのActiveSupportのデフォルトのDateの表示形式を変更できます。

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.update(:default => '%Y年%m月%d日', :db => '%Y-%m-%d')

のようにしておくと、

<%= h item.created_at %>

と書くだけで、

2008年4月17日

と表示されるようになります。

しかし、2007年7月くらいまでのRails(つまり、Rails 1.1以前/Rails 1.2.3以前)にはバグがあり、SQLで問題が起きてきます。

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.update(:default => '%Y年%m月%d日', :db => '%Y-%m-%d')

とはっきり指定してやらなければなりません。

ためになるリンクを付記しておきますので、よろしければ、ご参照ください。

# See the bugfix (in trunk) at http://dev.rubyonrails.org/changeset/6060
# This bug fixed (in 1-2-stable, and thus 1.2.4 or later) at http://dev.rubyonrails.org/changeset/7012
# Detail of the bug is described in http://dev.rubyonrails.org/ticket/6312
posted by N.T.T with Rails 3.2 (ex. 2.1) at 11:00| Comment(0) | TrackBack(0) | Rails | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。