From d7f9514d32675f28427046564062c73185ee2890 Mon Sep 17 00:00:00 2001 From: byzg Date: Tue, 15 Sep 2015 23:43:38 +0300 Subject: [PATCH] use rack.input instead of rack.request.form_hash --- lib/rack/jquery-params/load.rb | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/lib/rack/jquery-params/load.rb b/lib/rack/jquery-params/load.rb index 0c68e6e..42490f3 100755 --- a/lib/rack/jquery-params/load.rb +++ b/lib/rack/jquery-params/load.rb @@ -14,17 +14,22 @@ def initialize(app, options={}) end def call(env) - status, headers, response = @app.call(env) - self.class.fix(env, @options[:applies_to]) - [status, headers, response] + @app.call(env) end def self.fix(env, valid_methods=:all) valid_methods = extract_valid_methods(valid_methods) return if valid_methods != :all and !valid_methods.include?(env['REQUEST_METHOD']) fix_params(env['rack.request.query_hash']) - fix_params(env['rack.request.form_hash']) + raw_rack_input = env['rack.input'] + begin + params = Rack::Utils.parse_nested_query(env['rack.input'].read, '&') + fix_params(params) + env["rack.input"] = StringIO.new(Rack::Utils.build_nested_query(params)) + rescue + env['rack.input'] = raw_rack_input + end end def self.fix_params(params)