aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
author=?utf-8?q?Mislav=20Marohni=C4=87?= <mislav.marohnic@gmail.com>2009-06-21 17:53:07 +0100
committerPratik Naik <pratiknaik@gmail.com>2009-06-21 17:53:07 +0100
commit21cd4c0e93fc6ac5497ada787d286c07f627e5ba (patch)
tree324c50a76105370b6607b88972a5c804a4557ff5
parent83c1934003740ed01c618a8943457a0df53e2adb (diff)
downloadrails-21cd4c0e93fc6ac5497ada787d286c07f627e5ba.tar.gz
rails-21cd4c0e93fc6ac5497ada787d286c07f627e5ba.tar.bz2
rails-21cd4c0e93fc6ac5497ada787d286c07f627e5ba.zip
Fix polymorphic_path doesn't modify options hash [#2099 state:resolved]
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
-rw-r--r--actionpack/lib/action_controller/routing/generation/polymorphic_routes.rb3
-rw-r--r--actionpack/test/activerecord/polymorphic_routes_test.rb9
2 files changed, 7 insertions, 5 deletions
diff --git a/actionpack/lib/action_controller/routing/generation/polymorphic_routes.rb b/actionpack/lib/action_controller/routing/generation/polymorphic_routes.rb
index d9b614c237..c6f7de17bd 100644
--- a/actionpack/lib/action_controller/routing/generation/polymorphic_routes.rb
+++ b/actionpack/lib/action_controller/routing/generation/polymorphic_routes.rb
@@ -112,8 +112,7 @@ module ActionController
# Returns the path component of a URL for the given record. It uses
# <tt>polymorphic_url</tt> with <tt>:routing_type => :path</tt>.
def polymorphic_path(record_or_hash_or_array, options = {})
- options[:routing_type] = :path
- polymorphic_url(record_or_hash_or_array, options)
+ polymorphic_url(record_or_hash_or_array, options.merge(:routing_type => :path))
end
%w(edit new).each do |action|
diff --git a/actionpack/test/activerecord/polymorphic_routes_test.rb b/actionpack/test/activerecord/polymorphic_routes_test.rb
index b9f5be2361..2036d1eeb5 100644
--- a/actionpack/test/activerecord/polymorphic_routes_test.rb
+++ b/actionpack/test/activerecord/polymorphic_routes_test.rb
@@ -234,10 +234,13 @@ class PolymorphicRoutesTest < ActionController::TestCase
with_admin_test_routes do
@project.save
@task.save
+
+ options = {}
object_array = [:admin, @project, @task]
- assert_no_difference 'object_array.size' do
- polymorphic_url(object_array)
- end
+ original_args = [object_array.dup, options.dup]
+
+ assert_no_difference('object_array.size') { polymorphic_path(object_array, options) }
+ assert_equal original_args, [object_array, options]
end
end