diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2015-09-18 11:19:04 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2015-09-18 11:19:04 -0700 |
commit | 3efb0bcdafc524cbbb002455b9bbc1233e43a868 (patch) | |
tree | 33d0d9af1acd60f78ee1b3a4790b904461f1a6b6 /actionpack/lib/action_dispatch/middleware | |
parent | 76c7162c1d63dc8a7a324913f0a7ba9d3f9165ec (diff) | |
download | rails-3efb0bcdafc524cbbb002455b9bbc1233e43a868.tar.gz rails-3efb0bcdafc524cbbb002455b9bbc1233e43a868.tar.bz2 rails-3efb0bcdafc524cbbb002455b9bbc1233e43a868.zip |
move parameter parsing to the request object
All parameter parsing should be on the request object because the
request object is the object that we ask for parameters.
Diffstat (limited to 'actionpack/lib/action_dispatch/middleware')
-rw-r--r-- | actionpack/lib/action_dispatch/middleware/params_parser.rb | 24 |
1 files changed, 3 insertions, 21 deletions
diff --git a/actionpack/lib/action_dispatch/middleware/params_parser.rb b/actionpack/lib/action_dispatch/middleware/params_parser.rb index 9cde9c9b98..a658a414a5 100644 --- a/actionpack/lib/action_dispatch/middleware/params_parser.rb +++ b/actionpack/lib/action_dispatch/middleware/params_parser.rb @@ -37,29 +37,11 @@ module ActionDispatch def call(env) request = Request.new(env) - parse_formatted_parameters(request, @parsers) do |params| - request.request_parameters = params - end + request.params_parsers = @parsers + + request.request_parameters @app.call(env) end - - private - def parse_formatted_parameters(request, parsers) - return if request.content_length.zero? - - strategy = parsers.fetch(request.content_mime_type) { return nil } - - yield strategy.call(request.raw_post) - - rescue => e # JSON or Ruby code block errors - logger(request).debug "Error occurred while parsing request parameters.\nContents:\n\n#{request.raw_post}" - - raise ParseError.new(e.message, e) - end - - def logger(request) - request.logger || ActiveSupport::Logger.new($stderr) - end end end |