2016-03-25 10 views
0

Im kullanım cihazını yönlendirmek ve sahip before_action :authenticate_user!Raylar cihazı ve</p> <p>kadar sign_in için

Kullanıcı giriş yapmadığında ve ben sign_in için form çağıran oturum ve sonra yeniden yönlendirmek doldurmak için tıkladığınızda Benim sorundur aynı sayfada bana örnek- için

i oturum değilim ve ben kök sayfasında değilim ve benim kimlik bilgilerini girin açılır i show modal tıklayarak products/1 görmek istiyorum ve aynı sayfada

beni yönlendirir

Ama products/1

seans kontrolörü

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 

şablon create.js.erb olmak istiyorum içinde işaretinden sonraki

<% 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 %> 

i <% if user_signed_in?%> sonra ne değişmelidir?

cevap

-1

Eğer :: SessionsController sen vasiyetle after_sign_in_path_for yöntemi kullanabilirsiniz içinde işaretinden sonraki kullanıcıyı yönlendirmek istiyorsanız

İlk mağaza gibi giriş modal gösterdikten sonra session üzerinde bulundukları url: Sonra

session[:login_redirect] = url 

giriş yaptıktan sonra kullanıcı bu URL'ye yönlendiriyor.

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

Ayrıca seans yolları ile routes.rb güncelleyin:

devise_for :user, :controllers => {:sessions => "sessions"} 
İlgili konular