diff --git a/actionpack/lib/action_controller/code_generation.rb b/actionpack/lib/action_controller/code_generation.rb index d2d7deb212..de11d4a496 100644 --- a/actionpack/lib/action_controller/code_generation.rb +++ b/actionpack/lib/action_controller/code_generation.rb @@ -187,7 +187,7 @@ def hash_value(key, assign = true, default = nil) locals << local_name(key) end end - code = "(#{code} || #{default.inspect})" if default + code = "(#{code} || (#{default.inspect}))" if default return code end diff --git a/actionpack/test/controller/routing_test.rb b/actionpack/test/controller/routing_test.rb index 0a9453e86a..3687b6ac77 100644 --- a/actionpack/test/controller/routing_test.rb +++ b/actionpack/test/controller/routing_test.rb @@ -1,5 +1,6 @@ require File.dirname(__FILE__) + '/../abstract_unit' require 'test/unit' +require 'stringio' RunTimeTests = ARGV.include? 'time' @@ -629,6 +630,17 @@ def test_route_with_colon_first end end + def test_route_generating_string_literal_in_comparison_warning + old_stderr = $stderr + $stderr = StringIO.new + rs.draw do |map| + map.connect 'subscriptions/:action/:subscription_type', :controller => "subscriptions" + end + assert_equal "", $stderr.string + ensure + $stderr = old_stderr + end + def test_basic_named_route rs.home '', :controller => 'content', :action => 'list' x = setup_for_named_route