ActiveRecordのおせっかい

>> u1 = User.new
=> #<User:0x50c25ec @new_record=true, @attributes={"ref_across"=>nil, "updated_at"=>nil, "upduser"=>nil, "insuser"=>nil, "contractor_id"=>nil, "telno"=>nil, "userid"=>nil, "logged_
in_at"=>nil, "user_role_id"=>nil, "usrname"=>nil, "email"=>nil, "created_at"=>nil}>
>> u1.updated_at = 'xxxx'
=> "xxxx"
>> u1
=> #<User:0x50c25ec @new_record=true, @attributes={"ref_across"=>nil, "updated_at"=>"xxxx", "upduser"=>nil, "insuser"=>nil, "contractor_id"=>nil, "telno"=>nil, "userid"=>nil, "logg
ed_in_at"=>nil, "user_role_id"=>nil, "usrname"=>nil, "email"=>nil, "created_at"=>nil}>
>> u1.updated_at
=> nil
>> u1.updated_at = '2007/09/20 20:30'
=> "2007/09/20 20:30"
>> u1.updated_at
=> Thu Sep 20 20:30:00 +0900 2007
>> u1.updated_at.class
=> Time

ActiveRecordの時刻のカラムは、メソッドで取得するときに自動的にTimeに直そうとするっぽい。形式チェックのvalidationをしたいときはどないすればいいんじゃー!


Answer: read_attribute_before_type_cast を使えばいい