rails:2009
From: msasaki <sato1192two9low@y...>
Date: Sun, 11 Feb 2007 10:13:47 +0900 (JST)
Subject: [rails:2009] Re: カラム値の表示変更方法
佐々木です。 連続ですいません。 先ほど教えて頂いた方法を用いて、時間をdate_select ヘルパーを利用して編集しようとすると次のようなエラーが出ます。 undefined method `year' for "2007/02/11":String 当たり前かも知れませんが、再定義したcreated_onが返すのは 文字列なのでdate_select ヘルパーを使うのは無理のようです。 この方法を用いると簡単に表示が出来る反面、Timeオブジェクトとして 扱ってくれなくなるのが辛いところですね。 やはり別名の関数として定義するのがいいのでしょうか? msasaki <sato1192two9low@y...> 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@g...> 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@r... 使い方: http://QuickML.com/ --------------------------------- Start Yahoo! Auction now! Check out the cool campaign --------------------------------- Start Yahoo! Auction now! Check out the cool campaign
@ 2005 2007-02-10 10:20 [sato1192two9low@y...] カラム値の表示変更方法 2006 2007-02-10 12:40 ┗[43hara@g... ] 2007 2007-02-10 12:44 ┗[43hara@g... ] @ 2008 2007-02-11 01:57 ┗[sato1192two9low@y...] -> @ 2009 2007-02-11 02:13 ┗[sato1192two9low@y...] 2010 2007-02-11 02:41 ┗[walf443@g... ] @ 2012 2007-02-11 04:49 ┗[sato1192two9low@y...] 2014 2007-02-11 06:30 ┗[walf443@g... ] 2015 2007-02-11 17:41 ┗[43hara@g... ]