Tengo una aplicación Sinatra y en la mayoría de mis controladores aparece json y se recoge automáticamente en el objeto params. Sin embargo, tengo una acción de publicación que no obtiene los params a menos que haga un truco con un método anterior para extraer los parámetros request.body, los analiza como JSON y los combina en el hash de params.El método params del controlador Sinatra entra en vacío en la solicitud posterior a JSON
Aquí es el controlador, junto con el método de filtro:
before do
if request.request_method == "POST"
body_parameters = request.body.read
params.merge!(JSON.parse(body_parameters))
end
end
post '/locations/new' do
content_type :json
puts "params after post params method = #{params.inspect}"
... other code ...
end
La salida veo es básicamente que los parámetros en la acción del controlador en realidad están en allí correctamente. Sin embargo, si comento la llamada anterior, los parámetros están vacíos.
Lo anterior se siente como un hack. Esperaría que esos parámetros entren sin importar qué ... Debo estar haciendo algo mal allí, pero no sé qué es.
Cualquier ayuda sería muy apreciada ...
Estoy teniendo un problema similar, pero su solución no funciona: http://stackoverflow.com/posts/43336445/edit –