佐々木です。
 
連続ですいません。
 
先ほど教えて頂いた方法を用いて、時間を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/


Start Yahoo! Auction now! Check out the cool campaign

 


Start Yahoo! Auction now! Check out the cool campaign