Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make Devise redirect after confirmation

How can I create an after-confirmation redirect in Devise?

Before I added the confirmation module the custom after_sign_up_path worked fine for the first time login/signup but now when I click the confirmation link in the email it redirects to the path I set for the after-login path (user profile).

My goal is to create a form wizard and "getting started" page to collect additional information. The obvious caveat being that this redirect will only happen one time, upon confirmation.

I tried some other solutions that have been posted on Stack Overflow but none of them seem to work any longer.

like image 904
js111 Avatar asked Jun 07 '12 06:06

js111


1 Answers

A less intrusive way of achieving this might be just overriding the after_confirmation_path_for method of Devise::ConfirmationsController.

Create a new confirmations_controller.rb in app/controllers directory:

class ConfirmationsController < Devise::ConfirmationsController    private    def after_confirmation_path_for(resource_name, resource)     your_new_after_confirmation_path   end  end 

In config/routes.rb, add this line so that Devise will use your custom ConfirmationsController. This assumes Devise operates on users table (you may edit to match yours).

devise_for :users, controllers: { confirmations: 'confirmations' } 

Restart the web server, and you should have it.

like image 63
MichaelZ Avatar answered Oct 10 '22 10:10

MichaelZ