ruby-on-rails – 如何在Rails中删除通配符cookie?

如何在使用通配符域设置的rails中删除Cookie?
cookies[:foo] = {:value => 'bar',:domain => '.acme.com'}

docs之后,你做:

cookies.delete :foo

日志说

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

请注意,域丢失(似乎使用默认值)
一切的参数).尊重RFC,当然是cookie的
还有,浏览器 – > ctrl / cmd-L – >

javascript:alert(document.cookie);

瞧!

问:删除这样的cookie是什么“正确”的方法?

解决方法

通过删除的域:以下是该方法的来源:
# 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

正如你所看到的,它只是设置一个空的cookie与你给的名字,设置为在1969年到期,没有内容.但它会合并您提供的任何其他选项,所以你可以做:

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

你设置好了

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...