2010-12-02 15 views
0

私はrails 3を使用していますので、dbに保存するときにcreated_atとupdated_atの日付のデフォルトの形式を変更します。デフォルトの日付形式を%Y%m%d%H%M%Sに変更します

デフォルトの日付形式は%Y-%m-%d %H:%M:%Sですが、 は、私はそれが私が形式を変更する必要があり%Y%m%d%H%M%S

になりたいですか?私は、initializerフォルダにtime_formats.rbを作成しようとしています。これは動作しません

class TimeFormats 
    Time::DATE_FORMATS[:db] = "%Y%m%d%H%M%S" 
    Time::DATE_FORMATS[:default] = "%Y%m%d%H%M%S" 
end 

:ここ

は、コンテンツです。私を助けることができる人がいますか?ありがとうございました。

答えて

2

初期化子で定義する時刻と日付の形式は、Rubyで文字列に変換するときにのみ適用されます。あなたが定義したフォーマットはTime.now.to_s(:default)のように使われます。

日付をデータベースに保存する方法を変更することはお勧めできません。データベースにデフォルトで保存されるようにデータベースを保存させてから、イニシャライザで定義されているように、ビューでフォーマットされる方法を.to_s(:format)を使用して変更します。

0

通常、データベースは、タイムスタンプをフォーマットされた文字列ではなく、特定のタイムデータ型として保存します。デフォルトのタイムスタンプの印刷スタイルを異なるものにしたい場合は、created_atとupdated_atのメソッドをオーバーライドしてみてください。

def updated_at 
    super.strftime("%Y%m%d%H%M%S") 
    end 
関連する問題