2013-07-13 2 views
0

Я пытаюсь удалить файл cookie для значения поля формы. Помощник Rails text_field добавляет [] к имени. то есть имя = пользователь [имя]Rails 2.3x: Удалить файл cookie с именем [] в имени

В этом случае файл cookie был создан с помощью пути. (Путь = '/ Войти /')

При попытке удалить куки

cookies.delete("user[name]") 

[] и получить URL-кодируемый Rack.

я могу установить печенье к нулю, как это:

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

, который очищает куки, но только для пути '/ входа в систему. (без косой черты) Конечная косая черта необходима, чтобы избежать ошибки IE8, которая не может сохранить файл cookie без завершающей косой черты.

Как я могу установить cookie из объекта ответа напрямую и установить путь в одно и то же время?

ответ

0

Я был в состоянии выполнить удаление куки, выполнив следующие действия:

response["Set-Cookie"] = 'user[name]=; path=/login/; expires=Thu, 01-Jan-1970 00:00:00 GMT' 

Чтобы удалить второе печенье, то вы можете сделать это:

response["Set-Cookie"] = [ response["Set-Cookie"], 'user[email]=; path=/login/; expires=Thu, 01-Jan-1970 00:00:00 GMT' ].join("\n") 

который точно как стойки (v1.1.3) Имеет ли это.

Тогда спецификация, что бы подтвердить первый куки была удалена выглядят следующим образом:

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 

Надеются, что это помогает кто-то там!

Смежные вопросы