diff --git a/app/controllers/confirmations_controller.rb b/app/controllers/confirmations_controller.rb new file mode 100644 index 0000000..17a4feb --- /dev/null +++ b/app/controllers/confirmations_controller.rb @@ -0,0 +1,14 @@ +class ConfirmationsController < Devise::ConfirmationsController + 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) if is_flashing_format? + sign_in(resource_name, resource) + respond_with_navigational(resource){ redirect_to after_confirmation_path_for(resource_name, resource) } + else + respond_with_navigational(resource.errors, status: :unprocessable_entity){ render :new } + end + end +end diff --git a/config/routes.rb b/config/routes.rb index f800744..a1641a6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,5 +1,5 @@ Rails.application.routes.draw do - devise_for :users, controllers: {registrations: 'registrations'} + devise_for :users, controllers: {registrations: 'registrations', confirmations: 'confirmations'} scope module: :public do root to: 'home#index'