diff --git a/actionpack/CHANGELOG.md b/actionpack/CHANGELOG.md index 861e0863720d..68cce142a2b8 100644 --- a/actionpack/CHANGELOG.md +++ b/actionpack/CHANGELOG.md @@ -1,7 +1,5 @@ ## Rails 4.0.0 (unreleased) ## -* Add the ability to pass options as part of the array notation for `polymorphic_url` *Romain Tribes* - * Fixed issue with where Digest authentication would not work behind a proxy. *Arthur Smith* * Added ActionController::Live. Mix it in to your controller and you can diff --git a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb index 93e8418d9c29..7bdd9244d168 100644 --- a/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb +++ b/actionpack/lib/action_dispatch/routing/polymorphic_routes.rb @@ -93,7 +93,6 @@ module PolymorphicRoutes 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 @@ -166,6 +165,7 @@ def routing_type(options) 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 @@ def build_named_route_call(records, inflection, options = {}) def extract_record(record_or_hash_or_array) case record_or_hash_or_array when Array - record_or_hash_or_array.last + record_or_hash_or_array.last.is_a?(Hash) ? record_or_hash_or_array[-2] : record_or_hash_or_array.last when Hash; record_or_hash_or_array[:id] else record_or_hash_or_array end diff --git a/actionpack/test/activerecord/polymorphic_routes_test.rb b/actionpack/test/activerecord/polymorphic_routes_test.rb index 9454a6d72640..3e6dce959099 100644 --- a/actionpack/test/activerecord/polymorphic_routes_test.rb +++ b/actionpack/test/activerecord/polymorphic_routes_test.rb @@ -323,13 +323,6 @@ def test_with_array_containing_complex_hash end end - def test_with_array_containing_simple_hash_options_take_precedence - with_test_routes do - @project.save - assert_equal "http://example.com/projects/#{@project.id}?foo=baz", polymorphic_url([@project, :foo => 'bar' ], :foo => 'baz') - end - end - def test_with_array_containing_single_name with_test_routes do @project.save