2013-07-13 49 views
0

我试图删除表单字段值的cookie。 Rails text_field助手将[]添加到名称。即name = user [name]Rails 2.3x:删除名称为[]的Cookie

在这种情况下,cookie已经创建了一个路径。 (路径= '/登录/')

当我尝试删除cookie

cookies.delete("user[name]") 

的[]得到URL编码由机架。

我可以设置cookie为nil这样的:

response['set-cookie']='user[name]=' 

从而清除cookie的,但只适用于路径 '/登录'。 (没有结尾的斜杠)尾部的斜杠是必需的,以避免IE8错误,无法存储没有结尾斜杠的cookie。

如何从响应对象直接设置cookie并同时设置路径?

回答

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") 

这究竟是如何架(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 

希望这有助于别人在那里!