From ec5c75820935282fa31da4080a50271df871247d Mon Sep 17 00:00:00 2001 From: Ryan Angilly Date: Thu, 8 Jan 2009 11:43:46 -0500 Subject: [PATCH] Fixing type_conflict so the exception reports all parameters on the request --- .../action_controller/url_encoded_pair_parser.rb | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_controller/url_encoded_pair_parser.rb b/actionpack/lib/action_controller/url_encoded_pair_parser.rb index 9883ad0..65928d7 100644 --- a/actionpack/lib/action_controller/url_encoded_pair_parser.rb +++ b/actionpack/lib/action_controller/url_encoded_pair_parser.rb @@ -5,7 +5,8 @@ module ActionController def initialize(pairs = []) super('') @result = {} - pairs.each { |key, value| parse(key, value) } + @pairs = pairs + @pairs.each { |key, value| parse(key, value) } end KEY_REGEXP = %r{([^\[\]=&]+)} @@ -88,7 +89,7 @@ module ActionController end def type_conflict!(klass, value) - raise TypeError, "Conflicting types for parameter containers. Expected an instance of #{klass} but found an instance of #{value.class}. This can be caused by colliding Array and Hash parameters like qs[]=value&qs[key]=value. (The parameters received were #{value.inspect}.)" + raise TypeError, "Conflicting types for parameter containers. Expected an instance of #{klass} but found an instance of #{value.class}. This can be caused by colliding Array and Hash parameters like qs[]=value&qs[key]=value. (The parameters received were #{@pairs.inspect}.)" end end end -- 1.5.4.3