佐々木です。
 
吉見様ご回答ありがとうございます。
 
教えて頂いた方法で簡単に出来ました。
今回、時間以下は使いませんのでこの方法が一番簡単で良いと感じています。
(将来的に時間を表示する個所が出てきたら、その個所のみヘルパー等で対応したいと思います。)

Keiji Yoshimi <walf443@gmail.com> wrote:
吉見です。

> 先ほど教えて頂いた方法を用いて、時間を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/

 


Start Yahoo! Auction now! Check out the cool campaign