2010-08-25 14 views
9

मैं प्रमाणीकरण के लिए डेविस का उपयोग कर एक रेल 3 अनुप्रयोग विकसित कर रहा हूं। वर्कफ़्लो के दौरान, patient_id जैसे डेटा सत्र में संग्रहीत होते हैं। हालांकि, जब उपयोगकर्ता लॉग आउट हो जाता है, तो सत्र को साफ़ करने की आवश्यकता होती है। मैं उपयोगकर्ता डेटा लॉगिन/लॉगआउट को संभालने के बाद सत्र डेटा को रीसेट करने का तरीका समझने में असमर्थ हूं और मुझे इसका नियंत्रण नहीं है।रेल 3 रीसेट सत्र का उपयोग कर

इस स्थिति को कैसे संभालें?

+0

मैं डेविस का उपयोग कर रहा हूं और ऐसा लगता है कि यह स्वचालित रूप से लॉगआउट पर सत्र रीसेट करता है। यह समझें कि यह पुराना पुराना पोस्ट है- क्या आपने प्रश्न पूछने के बाद डेविस परिवर्तन व्यवहार किया था, या क्या मुझे कुछ याद आ रहा है? – Yarin

उत्तर

14

ओवरराइट वसीयत :: इस तरह SessionsController:

class SessionsController < Devise::SessionsController 
    respond_to :html 
    def destroy 
    super 
    reset_session 
    end 
end 

डॉन मज़ेदार विचारों को सही जगह पर ले जाना न भूलें (विचार/व्यय/सत्र/सत्रों में सत्र) और अपने नियंत्रक को इंगित करने के लिए तैयार मार्ग को संशोधित करें। उदाहरण के लिए:

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

अधिक जानकारी या बिल द्वारा पोस्ट किए गए लिंक के लिए जिथब पर तैयार दस्तावेज़ देखें।

+0

धन्यवाद, उपरोक्त तकनीक को काम करना चाहिए। यह वर्तमान में समाधान के रूप में जो मैं कर रहा हूं उससे साफ़ है: https://gist.github.com/735857। यह फिर से दस्तावेज़ों के माध्यम से ठीक से जाने में मेरी असमर्थता साबित करता है। मैं आपके समाधान में जाउंगा। –

+0

शायद मैं कुछ गलत कर रहा हूं, लेकिन मुझे उपयोगकर्ता को लॉग आउट करने और उन्हें एक नए पृष्ठ पर भेजने की आवश्यकता है ... इसलिए बस "reset_session" मेरे लिए काम किया। – rtfminc

1

मेरा मानना ​​है कि तुम पर चिंतन करना नियंत्रकों सवारी करने के लिए होगा, इस पर यहाँ एक अच्छा पोस्ट है:

Devise, CanCan and customizing devise controllers

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