吉見です。
> 先ほど教えて頂いた方法を用いて、時間をdate_select ヘルパーを利用して編集
> しようとすると次のようなエラーが出ます。
>
> undefined method `year' for "2007/02/11":String
>
> 当たり前かも知れませんが、再定義したcreated_onが返すのは
> 文字列なのでdate_select ヘルパーを使うのは無理のようです。
>
> この方法を用いると簡単に表示が出来る反面、Timeオブジェクトとして
> 扱ってくれなくなるのが辛いところですね。
>
> やはり別名の関数として定義するのがいいのでしょうか?
Timeインスタンスが文字列として期待されているところでのみ形式を変更すれば良いのであれば
Timeクラスを拡張するという方法もあります。
# in config/environment.rb
ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!({
:default => "%y年%m月%d日 %H:%M",
})
これならテンプレートに渡されたTimeインスタンスは標準でYYYY/MM/DDとできます。
# あまり好ましい方法ではないかもしれませんが。
--
ML: rails@ruby.ml.fdiary.net
使い方: http://QuickML.com/