2008-09-09 12 views
13

कैसे आप रेल को वाइल्ड कार्ड डोमेन के साथ स्थापित किया गया था कि में एक कुकी नष्ट कर सकता हूं:रेल में जंगली कार्ड कुकीज़ कैसे हटाते हैं?

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

है, docs निम्नलिखित, है न:

cookies.delete :foo 

लॉग कहना

Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT 

ध्यान दें कि डोमेन गुम है (ऐसा लगता है कि यह सब कुछ के लिए डिफ़ॉल्ट पैराम्स का उपयोग करता है)। आरएफसी का सम्मान, बेशक कुकी के अभी भी वहाँ, ब्राउज़र ->ctrl/cmd - एल ->

javascript:alert(document.cookie); 

देखा!

प्रश्न: ऐसी कुकी को हटाने के लिए "सही" तरीका क्या है?

+0

Thx! यह एक आकर्षण की तरह काम करता है ... मैंने लिंक http://api.rubyonrails.org/classes/ActionController/Cookies.html "दस्तावेज़" जोड़ने की कोशिश की लेकिन यह असफल हो सकता है – Purfideas

उत्तर

20

पास करें: डोमेन को भी हटाएं। यहाँ है कि विधि का स्रोत है:

# 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 

आप देख सकते हैं, यह सिर्फ नाम दिया था, 1969 में समाप्त होने वाली के साथ एक खाली कुकी सेट है, और कोई सामग्री के साथ। लेकिन यह आपके द्वारा दिए गए किसी अन्य विकल्प में विलय करता है, ताकि आप यह कर सकें:

cookies.delete :foo, :domain => '.acme.com' 

और आप सेट हैं।

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