module Devise::Models::Trackable
Track information about your user sign in. It tracks the following columns:
-
sign_in_count - Increased every time a sign in is made (by form, openid, oauth)
-
current_sign_in_at - A timestamp updated when the user signs in
-
last_sign_in_at - Holds the timestamp of the previous sign in
-
current_sign_in_ip - The remote ip updated when the user sign in
-
last_sign_in_ip - Holds the remote ip of the previous sign in
Public Class Methods
required_fields(klass)
click to toggle source
# File lib/devise/models/trackable.rb, line 14 def self.required_fields(klass) [:current_sign_in_at, :current_sign_in_ip, :last_sign_in_at, :last_sign_in_ip, :sign_in_count] end
Public Instance Methods
update_tracked_fields(request)
click to toggle source
# File lib/devise/models/trackable.rb, line 18 def update_tracked_fields(request) old_current, new_current = self.current_sign_in_at, Time.now.utc self.last_sign_in_at = old_current || new_current self.current_sign_in_at = new_current old_current, new_current = self.current_sign_in_ip, request.remote_ip self.last_sign_in_ip = old_current || new_current self.current_sign_in_ip = new_current self.sign_in_count ||= 0 self.sign_in_count += 1 end
update_tracked_fields!(request)
click to toggle source
# File lib/devise/models/trackable.rb, line 31 def update_tracked_fields!(request) update_tracked_fields(request) save(validate: false) end