class Devise::ConfirmationsController

def after_confirmation_path_for(resource_name, resource)

The path used after confirmation.
def after_confirmation_path_for(resource_name, resource)
  if signed_in?(resource_name)
    signed_in_root_path(resource)
  else
    new_session_path(resource_name)
  end
end

def after_resending_confirmation_instructions_path_for(resource_name)

The path used after resending confirmation instructions.
def after_resending_confirmation_instructions_path_for(resource_name)
  is_navigational_format? ? new_session_path(resource_name) : '/'
end

def create

POST /resource/confirmation
def create
  self.resource = resource_class.send_confirmation_instructions(resource_params)
  yield resource if block_given?
  if successfully_sent?(resource)
    respond_with({}, location: after_resending_confirmation_instructions_path_for(resource_name))
  else
    respond_with(resource)
  end
end

def new

GET /resource/confirmation/new
def new
  self.resource = resource_class.new
end

def show

GET /resource/confirmation?confirmation_token=abcdef
def show
  self.resource = resource_class.confirm_by_token(params[:confirmation_token])
  yield resource if block_given?
  if resource.errors.empty?
    set_flash_message!(:notice, :confirmed)
    respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) }
  else
    # TODO: use `error_status` when the default changes to `:unprocessable_entity`.
    respond_with_navigational(resource.errors, status: :unprocessable_entity){ render :new }
  end
end

def translation_scope

def translation_scope
  'devise.confirmations'
end