2013-09-24 1 views
0

Я использую gem devise. И я переопределил разработку контроллера регистрации, и все прошло отлично, но проблема заключается в пути перенаправления после его сохранения. Я хочу сделать это после того, как пользователь будет сохранен, он перенаправляется на profile_path, но теперь мне нужно войти в систему, прежде чем перенаправить путь к профилю. Как я могу это решить? Вот мой контроллер регистра:Ruby on Rails: путь перенаправления после sign_up devize

class RegistrationsController < Devise::RegistrationsController 
    def new 
    super 
    end 

    def create 
     @user= User.new(params[:user]) 
     if @user.save 
    redirect_to profile_path, notice: 'User was successfully created.' 
    else 
    render action: "new" 
    end 

    end 

    def update 
    super 
    end 
end 

И это мой контроллер приложения, которые контролируют путь после того, как зарегистрироваться и войти в систему:

class ApplicationController < ActionController::Base 
    protect_from_forgery 

    def after_sign_in_path_for(resource) 
     if request.path !~ /^\/admins\//i 
      resource.sign_in_count <= 1 ? '/profile' : root_path 
     end 
    end 
end 

Перед тем, как переопределить контроллер регистра, перенаправление после знака вверх пошел Великий. Было бы очень приятно, если бы кто-нибудь мог помочь. Благодарю.

ответ

0

Вы должны подписать пользователю в методе create:

if @user.save 
    sign_in(resource_name, resource) 
    current_user = @user # !! now logged in 
    redirect_to profile_path, notice: 'User was successfully created.' 
else 

Вы можете посмотреть на оригинальный create метод в Devise::RegistrationsController, чтобы увидеть, как это работает.

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