ruby-on-rails - variable - ver cookies chrome
Eliminar cookies de un controlador (2)
De acuerdo con la api.rubyonrails.org/classes/ActionDispatch/Cookies.html , ahora hay un método de eliminación, por lo que si no has configurado el dominio usa
cookies.delete :my_key
y si has configurado el dominio
cookies.delete :my_key, domain: ''mydomain.com''
Establecí algunos valores de cookies en mi formulario usando jQuery. Puedo leerlos muy bien en mi controlador Rails a través del método de cookies
. Cuando llamo cookies.delete(:my_key)
, parecen desaparecer cuando vuelvo a llamar a las cookies
. Pero cuando vuelvo a cargar la página, las cookies vuelven.
¿Hay alguna manera de eliminar las cookies para siempre desde dentro de mi controlador?
EDITAR
Esto es muy extraño ya que estoy mirando los encabezados de respuesta y parecen estar borrando la cookie. Tal vez es porque es una solicitud 302?
Set-Cookie: my_key=; path=/; expires=Thu, 01-Jan-1970 00:00:00 GMT
Por ejemplo, su cookie se ve así
cookies[:foo] = {:value => ''bar'', :domain => ''.text.com''}
Como cookies.delete :foo
este => cookies.delete :foo
Los registros dirán => Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
Cookie set: foo=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
Tenga en cuenta que falta el dominio. Intenté de esta manera
cookies.delete: foo,: domain => ''.text.com''
Función =>
# 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