diff options
Diffstat (limited to 'actionpack')
-rw-r--r-- | actionpack/lib/action_controller/routing.rb | 2 | ||||
-rw-r--r-- | actionpack/test/controller/routing_tests.rb | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/routing.rb b/actionpack/lib/action_controller/routing.rb index 20bc6c8cae..0e97b7174f 100644 --- a/actionpack/lib/action_controller/routing.rb +++ b/actionpack/lib/action_controller/routing.rb @@ -317,7 +317,7 @@ module ActionController end def self.extract_parameter_value(parameter) - value = parameter.respond_to?(:to_param) ? parameter.to_param : parameter.to_s + value = (parameter.respond_to?(:to_param) ? parameter.to_param : parameter).to_s CGI.escape(value) end diff --git a/actionpack/test/controller/routing_tests.rb b/actionpack/test/controller/routing_tests.rb index 744ccb1093..f36e395107 100644 --- a/actionpack/test/controller/routing_tests.rb +++ b/actionpack/test/controller/routing_tests.rb @@ -346,6 +346,13 @@ class RouteTests < Test::Unit::TestCase verify_generate('id%2Fwith%2Fslashes', {}, {:controller => 'content', :action => 'fish', :id => 'id/with/slashes'}, {}) end + + def test_generate_with_numeric_param + o = Object.new + def o.to_param() 10 end + verify_generate('content/action/10', {}, {:controller => 'content', :action => 'action', :id => o}, @defaults) + verify_generate('content/show/10', {}, {:controller => 'content', :action => 'show', :id => o}, @defaults) + end end class RouteSetTests < Test::Unit::TestCase |