Подтвердить что ты не робот

Удаление файлов 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
4b9b3361

Ответ 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'