# module Devise::Models::Recoverable::ClassMethods

### Public Instance Methods

reset_password_by_token(attributes={}) click to toggle source

Attempt to find a user by its #reset_password_token to reset its password. If a user is found and token is still valid, reset its password and automatically try saving the record. If not user is found, returns a new user containing an error in #reset_password_token attribute. Attributes must contain #reset_password_token, password and confirmation

    # File lib/devise/models/recoverable.rb, line 120
    def reset_password_by_token(attributes={})
      recoverable = find_or_initialize_with_error_by(:reset_password_token, attributes[:reset_password_token])
      if recoverable.persisted?
        if recoverable.reset_password_period_valid?
          recoverable.reset_password!(attributes[:password], attributes[:password_confirmation])
        else
          recoverable.errors.add(:reset_password_token, :expired)
        end
      end
      recoverable
    end

reset_password_token() click to toggle source

Generate a token checking if one does not already exist in the database.

    # File lib/devise/models/recoverable.rb, line 111
    def reset_password_token
      generate_token(:reset_password_token)
    end

send_reset_password_instructions(attributes={}) click to toggle source

Attempt to find a user by its email. If a record is found, send new password instructions to it. If not user is found, returns a new user with an email not found error. Attributes must contain the user email

    # File lib/devise/models/recoverable.rb, line 104
    def send_reset_password_instructions(attributes={})
      recoverable = find_or_initialize_with_errors(reset_password_keys, attributes, :not_found)
      recoverable.send_reset_password_instructions if recoverable.persisted?
      recoverable
    end