2011-02-17 7 views
5

Estoy intentando cambiar una cookie para la ubicación del usuario en un filtro antes, pero estoy teniendo problemas:problema al cambiar valor de la cookie en Rails 3

La cookie se establece en 1 correctamente si no existe, pero no se guardará permanentemente y volverá a 1 para cualquier solicitud posterior.

def remember_location(loc = nil) 
    cookies.permanent[:location] = 1 if cookies[:location].nil? 
    loc = Location.find(loc).try(:id) rescue nil 
    unless loc.nil? 
     # cookies.delete :location # => this doesn't work either 
     cookies.permanent[:location] = loc 
    end 
    cookies[:location] 
    end 

Respuesta

1

Aquí estaba el problema. Las ubicaciones a las que estaba ingresando después daban un error de Rails ya que la base de datos no estaba completamente poblada. La cookie no se guardará realmente a menos que la solicitud completa finalice satisfactoriamente.

Después de mirar el código fuente de ActionDispatch :: Cookies, ese ciertamente parece ser el caso: http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html

Cuestiones relacionadas