2010-11-20 15 views
7

मुझे यह पसंद है, अगर उपयोगकर्ता लॉग इन करने के बाद, यह स्वचालित रूप से अपने पिछले स्थान पर रीडायरेक्ट करता है, लेकिन ऐसा कभी नहीं होता है, यह हमेशा रूट स्थान पर रीडायरेक्ट करता है। इसके लिए तैयार करने के दस्तावेज़ों को पढ़ने से ऐसा लगता है कि यह कार्यक्षमता सिर्फ काम करने वाली है। क्या मैं इसे किसी भी तरह गलत तरीके से उपयोग कर रहा हूं और/या मैं इसे स्टोर करने और बिना किसी रीडायरेक्ट को पुनर्निर्देशित करने के लिए कैसे मजबूर कर सकता हूं?devise sign_in_and_redirect कभी काम नहीं करता

http://rubydoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers#stored_location_for-instance_method

authentication = UserToken.find_by_provider_and_uid(omniauth['provider'], omniauth['uid']) 

if authentication 
    flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => omniauth['provider'] 
    sign_in_and_redirect(:user, authentication.user) 
else 
+0

मुझे अभी एहसास हुआ कि मुझे डिफ़ॉल्ट कार्यक्षमता नहीं मिल रही है क्योंकि मैं authorize_user का उपयोग नहीं कर रहा हूं! कॉलबैक जो स्थान संग्रहीत करता है ... तो मैं मैन्युअल रूप से स्थान कैसे बना सकता हूं? – holden

+0

आपने इसे कैसे हल किया? मैं https://github.com/plataformatec/devise/wiki/OmniAuth:- Devise के साथ रेल 3.2.5 ऐप के लिए फेसबुक लॉगिन को एकीकृत करने के लिए ओवरव्यू का अनुसरण कर रहा हूं। sign_in_and_redirect विधि मैं एक ही मुद्दा था :( – asitmoharna

+0

काम नहीं कर रहा है, बस एक पुस्तिका sign_in और एक अलग रीडायरेक्ट किया था, sign_in_and_redirect sign_in @user redirect_to root_path के स्रोत कोड की जांच – MatthewFord

उत्तर

4

this Google group page के नीचे तक स्क्रॉल और विधि वसीयत 'stored_location_for' की जाँच अधिरोहित।

def stored_location_for(resource) 
    if current_user && params[:redirect_to] 
     flash[:notice] = "Congratulations, you're signed up!" 
     return params[:redirect_to] 
    end 
    super(resource) 
    end 

कि आप मैन्युअल रूप से एक 'redirect_to' परम में पास करके स्थान बना सकते हैं चाहिए: मैं अपने application_controller में इसके बारे में एक रूपांतरित संस्करण है कि इस तरह दिखता है।

संबंधित मुद्दे