From 6be564c7a087773cb0b51c54396cc190e4f5c983 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Sat, 4 Aug 2012 11:24:53 +0100 Subject: Refactor passing url options via array for polymorphic_url Rather than keep the url options in record_or_hash_or_array, extract it and reverse merge with options as it may contain important private keys like `:routing_type`. Closes #7259 --- actionpack/lib/action_dispatch/routing/polymorphic_routes.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb index 7bdd9244d1..93e8418d9c 100644 --- a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb +++ b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb @@ -93,6 +93,7 @@ module ActionDispatch def polymorphic_url(record_or_hash_or_array, options = {}) if record_or_hash_or_array.kind_of?(Array) record_or_hash_or_array = record_or_hash_or_array.compact + options.reverse_merge!(record_or_hash_or_array.extract_options!) if record_or_hash_or_array.first.is_a?(ActionDispatch::Routing::RoutesProxy) proxy = record_or_hash_or_array.shift end @@ -165,7 +166,6 @@ module ActionDispatch def build_named_route_call(records, inflection, options = {}) if records.is_a?(Array) - query_string = records.pop if records.last.is_a?(Hash) record = records.pop route = records.map do |parent| if parent.is_a?(Symbol) || parent.is_a?(String) @@ -199,7 +199,7 @@ module ActionDispatch def extract_record(record_or_hash_or_array) case record_or_hash_or_array when Array - record_or_hash_or_array.last.is_a?(Hash) ? record_or_hash_or_array[-2] : record_or_hash_or_array.last + record_or_hash_or_array.last when Hash; record_or_hash_or_array[:id] else record_or_hash_or_array end -- cgit v1.2.3