佐々木です。
連続ですいません。
先ほど教えて頂いた方法を用いて、時間をdate_select ヘルパーを利用して編集しようとすると次のようなエラーが出ます。
undefined method `year' for "2007/02/11":String
当たり前かも知れませんが、再定義したcreated_onが返すのは
文字列なのでdate_select ヘルパーを使うのは無理のようです。
この方法を用いると簡単に表示が出来る反面、Timeオブジェクトとして
扱ってくれなくなるのが辛いところですね。
やはり別名の関数として定義するのがいいのでしょうか?
msasaki <sato1192two9low@yahoo.co.jp> wrote:
佐々木です。
原様ご回答ありがとうございます。
おかげさまで
created_onを再定義することでYYYY/MM/DD と表示出来ました。
以下に作成したメソッドを書きます。
def created_on
return read_attribute(:created_on).strftime("%Y/%m/%d") if read_attribute(:created_on)
end
[補足]
if read_attribute(:created_on)
上記は foge modelを作成する際に、created_onメソッドを見るようで
nil.strftime というエラーが出るのを防止するためです。
Yoshihiro Hara <43hara@gmail.com> wrote:
原と申します。
すみません、編集中に送信してしまいました。
モデルのクラスで created_on メソッドを再定義すればよいのではないでしょうか。
def created_on
return read_attribute(:created_on).strftime("%Y/%m%d")
end
> モデルで created_on メソッドを再定義すればいいのではないでしょうか。
>
> def created_on
> end
>
> 07/02/10 に msasaki さんは書きました:
> >
> > 佐々木です。
> >
> > カラム値の表示だけ変更して使用することって出来るでしょうか。
> >
> > 例えば、作成日時を取得する場合に、foge modelで foge.created_on とした場合に常に "YYYY/MM/DD"だけを返すようにしたいのです。
> >
> > helperに定義してget_date(foge)と書けば簡単ですが、常に同じ処理をするので通常のカラム名と同じにしたいのですが、ご存知の方いらっしゃいますでしょうか。
> >
> >
> > ________________________________
> Start Yahoo! Auction now! Check out the cool campaign
> >
> >
> >
>
--
ML: rails@ruby.ml.fdiary.net
使い方: http://QuickML.com/