module Devise::Models::Confirmable::ClassMethods
def confirm_by_token(confirmation_token)
If the user is already confirmed, create an error for the user
If no user is found, returns a new user with an error.
Find a user by its confirmation token and try to confirm it.
def confirm_by_token(confirmation_token) confirmable = find_or_initialize_with_error_by(:confirmation_token, confirmation_token) confirmable.confirm! if confirmable.persisted? confirmable end
def confirmation_token
def confirmation_token generate_token(:confirmation_token) end
def find_by_unconfirmed_email_with_errors(attributes = {})
def find_by_unconfirmed_email_with_errors(attributes = {}) unconfirmed_required_attributes = confirmation_keys.map { |k| k == :email ? :unconfirmed_email : k } unconfirmed_attributes = attributes.symbolize_keys unconfirmed_attributes[:unconfirmed_email] = unconfirmed_attributes.delete(:email) find_or_initialize_with_errors(unconfirmed_required_attributes, unconfirmed_attributes, :not_found) end
def send_confirmation_instructions(attributes={})
field. If no user is found, returns a new user with an email not found error.
confirmation instructions to it. If not, try searching for a user by unconfirmed_email
Attempt to find a user by its email. If a record is found, send new
def send_confirmation_instructions(attributes={}) confirmable = find_by_unconfirmed_email_with_errors(attributes) if reconfirmable unless confirmable.try(:persisted?) confirmable = find_or_initialize_with_errors(confirmation_keys, attributes, :not_found) end confirmable.resend_confirmation_token if confirmable.persisted? confirmable end