Estoy tratando de solucionar un problema donde Rails no está decodificando los datos de JSON POST.Rails La solicitud JSON no se analiza correctamente en los parámetros de publicación
Los registros del servidor muestran:
2011-12-14T06:44:44+00:00 app[web.2]: Started POST
2011-12-14T06:44:44+00:00 app[web.2]: Processing by PostsController#create as */*
2011-12-14T06:44:44+00:00 app[web.2]: Parameters: {"{\"athlete_id\":\"\",\"known_as\":\"abc\",\"email\":\"[email protected]\",\"result\":\"112233\",\"rx\":false,\"mods\":\"thkjth\",\"notes\":\"\"}"=>nil, "affiliate_id"=>"testaffiliate", "wod_id"=>"12345"}
Tenga en cuenta que la cadena JSON no está siendo analizada - Carriles se le asigna como clave en el hash, que apunta a un valor nulo. ¿Alguien tiene alguna idea antes de escribir un before_filter que intente con JSON.parse con todas las claves de params?
No creo que esto sea relevante ya que estoy enviando y recibiendo datos bien, pero este problema ocurre durante una Solicitud CORS desde IE (usando XDomainRequest).
Encontré que al hacer esto (en unicornio) I el cuerpo de la solicitud incluida en los params como una clave: '{'theBodyOfRequest' => nil,: controller => users,: action => 'update'}' Dependiendo de su caso de uso esto podría causar problemas. Como es el primer param, agregué 'params.shift' para eliminarlo. – Peter
@collin, sí - Los datos que estaba PUBLICANDO eran originalmente JSON '{: foo =>" bar "}' (que fue codificado para enviar) por lo que los parámetros en el controlador se veían así: '{" {\ "foo \" => \ "bar \"} => nil, "controller" => "users" ...} ' – Peter
@Peter, que suena como el problema original que describí en la pregunta, ¿no? ¿Estás seguro de que su filtro se está ejecutando? – colllin