Удаление файлов cookie с контроллера
Я установил некоторые значения cookie в своей форме, используя jQuery. Я могу отлично их прочитать в контроллере Rails с помощью метода cookies
. Когда я вызываю cookies.delete(:my_key)
, они исчезают, когда я снова вызываю cookies
. Но когда я перезагружаю страницу, файлы cookie снова возвращаются.
Есть ли способ удалить куки файлы навсегда изнутри моего контроллера?
ИЗМЕНИТЬ
Это очень странно, потому что я смотрю заголовки ответов, и они, похоже, удаляют файл cookie. Может быть, потому что это запрос 302?
Set-Cookie: my_key=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
Ответы
Ответ 1
Попробуйте это.
Например, ваш файл cookie выглядит следующим образом
cookies[:foo] = {:value => 'bar', :domain => '.text.com'}
Как вы пробовали это: = > cookies.delete :foo
журналы скажут = > Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
Обратите внимание, что домен отсутствует. Пробовал этот путь
cookie.delete: foo,: domain = > '.text.com'
Функция = >
# 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
Все лучшее!!!
Ответ 2
В соответствии с rails api теперь существует метод удаления, поэтому, если вы не настроили использование домена
cookies.delete :my_key
и если вы установили домен
cookies.delete :my_key, domain: 'mydomain.com'