2011-05-23 12 views
23

मैंने jQuery का उपयोग करके मेरे फॉर्म में कुछ कुकी मान सेट किए हैं। मैं cookies विधि के माध्यम से अपने रेल नियंत्रक में बस ठीक पढ़ सकता हूं। जब मैं cookies.delete(:my_key) पर कॉल करता हूं, तो जब मैं cookies को दोबारा कॉल करता हूं तो वे चले जाते हैं। लेकिन जब मैं पृष्ठ को फिर से लोड करता हूं, तो कुकीज़ फिर से वापस आती हैं।नियंत्रक से कुकीज़ को हटाने

क्या मेरे नियंत्रक के अंदर से कुकीज़ को हटाने का कोई तरीका है?

संपादित

यह बहुत ही अजीब है के बाद से मैं प्रतिक्रिया हेडर को देख रहा हूँ और वे कुकी को हटा कर रहे हैं। शायद ऐसा इसलिए है क्योंकि यह 302 अनुरोध है?

Set-Cookie: my_key=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT 

उत्तर

27

इसे आजमाएं। उदाहरण के लिए, आपकी कुकी इस

cookies[:foo] = {:value => 'bar', :domain => '.text.com'} 

की तरह लग रहे करने की कोशिश की यह एक =>cookies.delete :foo

लॉग कहेंगे =>Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT

सूचना है कि डोमेन याद आ रही है के रूप में। की कोशिश की इस तरह से

cookies.delete: foo,: डोमेन => '.text.com'

समारोह =>

# Removes the cookie on the client machine by setting the value to an empty string 
# and setting its expiration date into the past. Like []=, you can pass in an options 
# hash to delete cookies with extra data such as a +path+. 
def delete(name, options = {}) 
    options.stringify_keys! 
    set_cookie(options.merge("name" => name.to_s, "value" => "", "expires" => Time.at(0))) 
end 

ऑल द बेस्ट !!!

+0

निर्धारित किया है कि अगर मैं काफी याद करने लगते हैं रैक आधारित ढांचे के साथ कुछ कुकी संबंधित मुद्दों। आपके समाधान को काम करना चाहिए और उम्मीद है कि पिछले साल से किसी भी मुद्दे को मंजूरी दे दी गई है। – Dex

+0

इस जानकारी से सहमत Gratuitous जानकारी: http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html कहता है "कृपया ध्यान दें कि यदि आप एक कुकी सेट करते समय डोमेन निर्दिष्ट करते हैं, तो आपको हटाए जाने पर डोमेन भी निर्दिष्ट करना होगा कुकी" –

6

rails api के अनुसार, वहाँ अब एक हटाने विधि है, इसलिए यदि आप सेट नहीं किया है डोमेन

cookies.delete :my_key 

का उपयोग करें और आप डोमेन

cookies.delete :my_key, domain: 'mydomain.com' 
संबंधित मुद्दे