Method: Devise::Controllers::SignInOut#sign_out
- Defined in:
- lib/devise/controllers/sign_in_out.rb
#sign_out(resource_or_scope = nil) ⇒ Object
Sign out a given user or scope. This helper is useful for signing out a user after deleting accounts. Returns true if there was a logout and false if there is no user logged in on the referred scope
Examples:
sign_out :user # sign_out(scope)
sign_out @user # sign_out(resource)
80 81 82 83 84 85 86 87 88 89 90 |
# File 'lib/devise/controllers/sign_in_out.rb', line 80 def sign_out(resource_or_scope = nil) return sign_out_all_scopes unless resource_or_scope scope = Devise::Mapping.find_scope!(resource_or_scope) user = warden.user(scope: scope, run_callbacks: false) # If there is no user warden.logout(scope) warden.clear_strategies_cache!(scope: scope) instance_variable_set(:"@current_#{scope}", nil) !!user end |