diff options
author | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-31 11:25:54 -0700 |
---|---|---|
committer | Aaron Patterson <aaron.patterson@gmail.com> | 2012-05-31 11:25:54 -0700 |
commit | d66fd081759af32e57baabf7888823cfd9bcebd0 (patch) | |
tree | 85d312ba731c283be5bccd6343861dbad0023aac /actionpack/lib/action_dispatch/http/request.rb | |
parent | f8f6ad6ebc1602afa6af3c9cb297ea7896fb8b3a (diff) | |
parent | dff6db18840e2fd1dd3f3e4ef0ae7a9a3986d01d (diff) | |
download | rails-d66fd081759af32e57baabf7888823cfd9bcebd0.tar.gz rails-d66fd081759af32e57baabf7888823cfd9bcebd0.tar.bz2 rails-d66fd081759af32e57baabf7888823cfd9bcebd0.zip |
Merge branch '3-2-stable-sec' into 3-2-stable
* 3-2-stable-sec:
Strip [nil] from parameters hash. Thanks to Ben Murphy for reporting this!
predicate builder should not recurse for determining where columns. Thanks to Ben Murphy for reporting this
bumping to 3.2.4.rc1
Diffstat (limited to 'actionpack/lib/action_dispatch/http/request.rb')
-rw-r--r-- | actionpack/lib/action_dispatch/http/request.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/http/request.rb b/actionpack/lib/action_dispatch/http/request.rb index 820921252d..adbb5d1346 100644 --- a/actionpack/lib/action_dispatch/http/request.rb +++ b/actionpack/lib/action_dispatch/http/request.rb @@ -247,6 +247,28 @@ module ActionDispatch LOCALHOST.any? { |local_ip| local_ip === remote_addr && local_ip === remote_ip } end + protected + + # Remove nils from the params hash + def deep_munge(hash) + hash.each_value do |v| + case v + when Array + v.grep(Hash) { |x| deep_munge(x) } + when Hash + deep_munge(v) + end + end + + keys = hash.keys.find_all { |k| hash[k] == [nil] } + keys.each { |k| hash[k] = nil } + hash + end + + def parse_query(qs) + deep_munge(super) + end + private def check_method(name) |