userstampプラグイン
ちょっと今更な感じもしますが、登録/更新したユーザーのIDを自動的に記録をするためのuserstampプラグイン( http://github.com/delynn/userstamp )を実際に仕事で使いたいなーと思ったんですが、モデルに一つ一つメソッドを記述しないくてはいけなかったので、どうにかcreated_at/on, updated_at/on のように自動で使いたいなーと思ってガッツリ作り直しました。
http://github.com/akm/userstamp
テストもRSpecで作り直しました。
ruby script/plugin install git://github.com/akm/userstamp.git
でインストールして、 config/initializers に userstamp.rb を作って
Userstamp.config.setup.defaults
とか、
Userstamp.config.setup do |config| config.with_options(:stamper_class_name => 'User') do |c| c.on(:create , :creator_id) c.on(:update , :updater_id) # c.on(:destroy, :deleter_id) end end
っていう感じで設定を記述すればあとは自動で動きます。
何か変な動きとかしたら教えてください。
一応、元のプラグインとも互換性があるはず・・・。クラス構造とか変えちゃってますので、ちょっと変更しなきゃいけないかもだけど。
acts_as_paranoid 対応の機能も残してあるので、一緒にインストールされていれば、(デフォルトで)deleter_idとかも設定されますです。
あ、READMEを全然書き直してないや。ま、あとでいいか。
2009/10/28 追記
ここで紹介したUserstampはMagicUserstampに変わりました。今後も更新したらこのブログで告知しますので、以下のリンクから最新をチェックしてください。
http://d.hatena.ne.jp/akm/searchdiary?word=userstamp