2016-03-25 1 views
0

Im использовать устройство для sign_in \ доРельсы устройство и перенаправлять

и имеют before_action :authenticate_user!

Моя проблема в том, когда пользователь не вошел в систему и я нажимаю войти в он вызывает форму для sign_in и после заполнения его перенаправления я на той же странице

для ПРИМЕР- я не вошли в систему, и я на корневой странице и хотите увидеть products/1 я нажав на show модальный выскакивает я ввожу свои учетные данные и перенаправляет меня на той же странице

Но после знака я хочу быть в products/1

сессии контроллер

class SessionsController < Devise::SessionsController 
    respond_to :js 
    layout false 
    def create 
    self.resource = warden.authenticate(auth_options) 

    if resource && resource.active_for_authentication? 
     sign_in(resource_name, resource) 
    end 
    end 

end 

шаблон create.js.erb

<% if user_signed_in?%> 
<%= request.referrer%> 
    window.location.href='<%= request.referrer %>' 
<% else %> 
    $('#login_popup input').parent().addClass('inputbox_error'); 
    $('#log_error_messages').show(); 
    $('input').keydown(function(){ 
    $(this).parent().removeClass('inputbox_error') 
    $('#log_error_messages').hide(); 
    }) 
<% end %> 

что я должен измениться после <% if user_signed_in?%>?

ответ

-1

Если вы хотите перенаправить пользователя после знака вы можете использовать after_sign_in_path_for метод в Devise :: SessionsController

Первый магазин URL, вы были на в session на показ входа модальность как:

session[:login_redirect] = url 

Тогда после входа в систему перенаправить пользователя на этот URL.

class SessionsController < Devise::SessionsController 
    def after_sign_in_path_for(resource) 
    session[:login_redirect] 
    end 
end 

также обновить routes.rb с сессии маршрутов:

devise_for :user, :controllers => {:sessions => "sessions"} 

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

  • Нет связанных вопросов^_^