我有一个Sinatra应用程序,在我的大多数控制器中,json进入并在params对象中自动拾取.但是,除非我使用before方法来拉取request.body参数将它们解析为JSON并将它们合并到params散列中,否则我的后期操作根本没有得到参数.
这是控制器,以及过滤方法:
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
Run Code Online (Sandbox Code Playgroud)
我看到的输出基本上是控制器动作中的参数实际上在那里正确.但是,如果我在通话前注释掉参数是空的.
之前的感觉就像一个黑客.无论怎样,我都希望这些参数进来......我必须在那里做错事但我不知道它是什么.
任何帮助将深深感激......