2008-09-09 43 views
13

どのようにワイルドカードドメインで設定されたレールにcookieを削除します:docs以下、あなたが行うと、Railsでワイルドカードクッキーを削除するにはどうすればよいですか?

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

を:

cookies.delete :foo 

ログは

Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT 
を言います

ドメインが存在しないことに注意してください(すべてのドメインにデフォルトの パラメータが使用されているようです)。 RFCを尊重し、当然のクッキーの まだそこに、ブラウザ - >CTRL/CMD - L - >

javascript:alert(document.cookie); 

ほら!

Q:このようなクッキーを削除する "正しい"方法は何ですか?

+0

Thx!それは魅力のように動作します...また、http://api.rubyonrails.org/classes/ActionController/Cookies.html "docs"というリンクを追加しようとしましたが、失敗している可能性があります – 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' 

そして、あなたが設定されています。

関連する問題