2013-03-10 2 views
0

Я использую Devise для регистрации пользователя и использую Confirmable для проверки электронной почты.Перенаправить пользователя на определенную страницу после регистрации с помощью Devise + confirmable

После регистрации пользователя я хочу перенаправить их на URL-адрес, объяснив, что им нужно проверить их электронную почту и нажать на ссылку. Я использую метод Devision :authenticate_user!, чтобы пользователи могли войти в систему, прежде чем просматривать содержимое сайта.

Per this file, похоже, что я могу определить after_inactive_sign_up_path_for(resource) и after_sign_up_path_for(resource) для управления этим перенаправлением.

Вот мой контроллер приложения:

class ApplicationController < ActionController::Base 
protect_from_forgery 
before_filter :authenticate_user!, :except => [:after_inactive_sign_up_path_for,  :after_sign_up_path_for] 

def after_sign_up_path_for(user) 
    confirm_path 
end 

def after_inactive_sign_up_path_for(user) 
    confirm_path 
end 

end 

Но это не работает. confirm_path в моем static_pages контроллер, который доступен без входа в аккаунт, как я skip_before_filter :authenticate_user! включен

Когда пользователь регистрируется, то :authenticate_user! вспомогательные пинки в и перенаправляет на страницу входа в систему.

ответ

4

Вы пробовали перекрывая контроллер регистрации так:

class RegistrationsController < Devise::RegistrationsController 
    protected 

    def after_inactive_sign_up_path_for(resource) 
    '/an/example/path' 
    end 
end 

https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-up-(registration)

+0

спасибо! не знаю, как я это пропустил. – Matt

+0

Мне также пришлось переопределить after_sign_up_path_for (ресурс) –

Смежные вопросы