[ruby]
[rails]
[rails_plugin]
[plugin]
[ActiveRecord]
acts_as_paranoid
このプラグインを導入すると、削除する際に、実際に行を消すのではなく、その行の deleted_at カラムに、削除の時間が記録されるようになります。
検索時にも、findで生成されるSQLのWHERE節に、以下のような条件が自動的に付加されます。
(users.deleted_at IS NULL OR users.deleted_at > '2007-01-21 12:27:07')
この条件を見ればわかりますが、削除予約といった使い方もできます。
フラグを条件に加えるのって、ついつい忘れてしまいがちなので便利です。
find_with_deleted メソッドで削除されたものも検索対象になります。
使い方は簡単。
まずはインストール。
./script/plugin install acts_as_paranoid
マイグレーションを記述。
class AddDeletedAt < ActiveRecord::Migration
def self.up
add_column users, :deleted_at, :datetime
end
def self.down
remove_column :users, :deleted_at
end
end
model に定義。
class User < ActiveRecord::Base
acts_as_paranoid
end
参考URL