| 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