Skip to content

Commit

Permalink
Fix polymorphic_path doesn't modify options hash [#2099 state:resolved]
Browse files Browse the repository at this point in the history
Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
  • Loading branch information
mislav authored and lifo committed Jun 21, 2009
1 parent 83c1934 commit 21cd4c0
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 5 deletions.
Expand Up @@ -112,8 +112,7 @@ def polymorphic_url(record_or_hash_or_array, options = {})
# 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|
Expand Down
9 changes: 6 additions & 3 deletions actionpack/test/activerecord/polymorphic_routes_test.rb
Expand Up @@ -234,10 +234,13 @@ def test_polymorphic_path_does_not_modify_arguments
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

Expand Down

0 comments on commit 21cd4c0

Please sign in to comment.