Module | ActiveRecord::UserMonitor |
In: |
lib/user_monitor.rb
|
操作者の情報を記録するモジュール。
# File lib/user_monitor.rb, line 6 6: def self.included(base) 7: base.alias_method_chain :create, :user 8: base.alias_method_chain :update, :user 9: base.extend(ClassMethods) 10: end
create を置き換える。 カラム created_by や updated_by が存在する場合は作成者を記録する。
# File lib/user_monitor.rb, line 23 23: def create_with_user 24: user_id = User.current_id 25: write_attribute("created_by", user_id) if self.class.column_names.include?("created_by") && created_by.nil? 26: write_attribute("updated_by", user_id) if self.class.column_names.include?("updated_by") 27: create_without_user 28: end
update を置き換える。 カラム updated_by が存在する場合は更新者を記録する。
# File lib/user_monitor.rb, line 32 32: def update_with_user 33: user_id = User.current_id 34: write_attribute("updated_by", user_id) if self.class.column_names.include?("updated_by") 35: update_without_user 36: end