Module ActiveRecord::UserMonitor
In: lib/user_monitor.rb

操作者の情報を記録するモジュール。

Methods

Classes and Modules

Module ActiveRecord::UserMonitor::ClassMethods

Public Class methods

[Source]

    # 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

Public Instance methods

create を置き換える。 カラム created_byupdated_by が存在する場合は作成者を記録する。

[Source]

    # 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

作成者を User インスタンスとして返す。 存在しない場合は nil を返す。

[Source]

    # File lib/user_monitor.rb, line 40
40:     def created_by_with_user
41:       begin
42:         User.find(read_attribute("created_by"))
43:       rescue ActiveRecord::RecordNotFound
44:         nil
45:       end
46:     end

update を置き換える。 カラム updated_by が存在する場合は更新者を記録する。

[Source]

    # 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

更新者を User インスタンスとして返す。 存在しない場合は nil を返す。

[Source]

    # File lib/user_monitor.rb, line 50
50:     def updated_by_with_user
51:       begin
52:         User.find(read_attribute("updated_by"))
53:       rescue ActiveRecord::RecordNotFound
54:         nil
55:       end
56:     end

[Validate]