我正在尝试删除表单字段值的Cookie。 Rails text_field助手将[]添加到名称中。即name = user [name]
在这种情况下,cookie已使用路径创建。 (path ='/ login /')
当我尝试删除cookie时
cookies.delete("user[name]")
[]获得由Rack编码的URL。
我可以将cookie设置为nil,如下所示:
response['set-cookie']='user[name]='
清除cookie,但仅限于路径'/ login'。 (没有尾部斜杠)需要使用尾部斜杠来避免IE8错误,该错误无法在没有尾部斜杠的情况下存储cookie。
如何直接从响应对象设置cookie并同时设置路径?
答案 0 :(得分:0)
我能够完成删除cookie,执行以下操作:
response["Set-Cookie"] = 'user[name]=; path=/login/; expires=Thu, 01-Jan-1970 00:00:00 GMT'
要删除第二个Cookie,您可以执行以下操作:
response["Set-Cookie"] = [ response["Set-Cookie"], 'user[email]=; path=/login/; expires=Thu, 01-Jan-1970 00:00:00 GMT' ].join("\n")
这正是Rack(v1.1.3)的作用。
然后,确认第一个cookie被删除的规范如下所示:
it "should delete the cookie used to store the username form field" do
post :login, @correct_form_params
response["Set-Cookie"][0].should =~ /user\[username\]=;/
end
希望这有助于其他人!