vestal_versionsとmagic_userstamp
create/update時にモデルの差分をDBに記録してくれるライブラリであるvestal_versions
http://github.com/laserlemon/vestal_versions/
これだけでも「いつ何がどう変更されたか」というモデルの変更履歴を記録していくことができますが、これにmagic_userstampを合わせると「いつ誰が何をどう変更したのか」が記録できるようになります。
でも一個だけ注意点があります。
http://github.com/akm/magic_userstamp のREADME.rdocにも書きましたが、gemのロードする順番によって正しく動作しない場合があります。vestal_versionsのVersionというモデルがmagic_userstampの設定よりも先にロードされた場合です。このような場合、 config/initializers/magic_userstamp.rb の最後の行のコメントを外せばオッケーです。
require 'magic_userstamp' # Comment out if you don't use t.userstamp at all in migrations ActiveRecord::ConnectionAdapters::TableDefinition.send(:include, MagicUserstamp::MigrationHelper) ActiveRecord::Base.module_eval do include MagicUserstamp end MagicUserstamp::Config.setup.defaults # If you have some classes which has loaded before Userstamp is loaded, # set record_userstamp true # Example: vestal_versions gem Version.record_userstamp = true if defined?(Version)