ActiveRecord::Modelのオブジェクトをdestroyしてもオブジェクトは使える

Userというモデルがあったとして

user = User.new
user.name = "kakkunpakkun"
#テーブルに保存
user.save

#idが入った
user.id
 => 1
user.name
 => "kakkunpakkun"

#ちゃんとテーブルに保存されてる
User.find(1).name
 => "kakkunpakkun"

#テーブルから削除する
user.destroy

#userはまだ生きてる!
user.id
 => 1
user.name
 => "kakkunpakkun"

てなわけで、userをインスタンス変数とかにしておけばテーブルから削除してても

kakkunpakkunを削除しました。

みたいなメッセージを出しやすいんですな。インスタンスメソッドとしてdestroyを持ってるのはこういう便利さがあるのか。そんないつもの「今さら」な話。

自分の名前の入ったデータを削除するのは複雑な気分。