जवाबों:
पूरी बात को साफ करने के लिए एक नियंत्रक में reset_session विधि का उपयोग करें।
reset_session
यहाँ इस पद्धति पर प्रलेखन है: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
सत्र के भीतर संग्रहीत सभी वस्तुओं को साफ़ करके और एक नए सत्र ऑब्जेक्ट को आरम्भ करके सत्र को रीसेट करता है।
सौभाग्य!
रेल में सत्र एक हैश वस्तु है। इसलिए हैश साफ़ करने के लिए उपलब्ध कोई भी कार्य सत्रों के साथ काम करेगा।
session.clear
या यदि विशिष्ट कुंजियों को नष्ट करना है:
session.delete(key)
रेल में परीक्षण 3.2
जोड़ा
लोगों ने उल्लेख किया session={}
है कि यह एक बुरा विचार है। session.clear
लोबाती टिप्पणियों के बारे में , ऐसा लगता है कि आप reset_session [session.clear] की तुलना में बेहतर कर रहे हैं, क्योंकि यह कुछ और सफाई करता है जो कि session.clear से परे है। आंतरिक रूप से, reset_session session.destroy कॉल करता है , जो खुद को स्पष्ट और साथ ही कुछ अन्य सामान भी कहता है।
reset_session
, क्योंकि यह कुछ और सफाई session.clear
करता है। आंतरिक रूप से, reset_session
कॉलsession.destroy
, जो खुद कॉल clear
करता है और साथ ही कुछ अन्य सामान भी ।
केवल कुछ मापदंडों को साफ़ करने के लिए, आप उपयोग कर सकते हैं:
[:param1, :param2, :param3].each { |k| session.delete(k) }
इस कोड को अपने ApplicationController में जोड़ें
def reset_session
@_request.reset_session
end
(पता नहीं क्यों ऊपर कोई भी इस कोड का उल्लेख नहीं करता है क्योंकि यह मेरी समस्या तय करता है) http://apidock.com/rails/ActionController/RackDelegation/reset_session
@_request.reset_session
और reset_session
दोनों काम करते हैं और शायद एक ही काम करते हैं?