diff options
author | Joshua Peek <josh@joshpeek.com> | 2009-03-04 14:37:59 -0600 |
---|---|---|
committer | Joshua Peek <josh@joshpeek.com> | 2009-03-04 14:37:59 -0600 |
commit | 638b3b15a13c4e274cfb317c40248e9feea3bfae (patch) | |
tree | 789772b55b67e7dcb70a5dfa2c14d3f64f83734f | |
parent | 6087fe8eedf0249f74be10721714f5298286b198 (diff) | |
download | rails-638b3b15a13c4e274cfb317c40248e9feea3bfae.tar.gz rails-638b3b15a13c4e274cfb317c40248e9feea3bfae.tar.bz2 rails-638b3b15a13c4e274cfb317c40248e9feea3bfae.zip |
Generating routes with optional format segment does not inherit params format [#2043 state:resolved]
-rw-r--r-- | actionpack/lib/action_controller/routing/segments.rb | 6 | ||||
-rw-r--r-- | actionpack/test/controller/routing_test.rb | 16 |
2 files changed, 21 insertions, 1 deletions
diff --git a/actionpack/lib/action_controller/routing/segments.rb b/actionpack/lib/action_controller/routing/segments.rb index 358b4a6487..4f936d51d2 100644 --- a/actionpack/lib/action_controller/routing/segments.rb +++ b/actionpack/lib/action_controller/routing/segments.rb @@ -324,7 +324,11 @@ module ActionController def to_s '(.:format)?' end - + + def extract_value + "#{local_name} = options[:#{key}] && options[:#{key}].to_s.downcase" + end + #the value should not include the period (.) def match_extraction(next_capture) %[ diff --git a/actionpack/test/controller/routing_test.rb b/actionpack/test/controller/routing_test.rb index 13ba0c30dd..01b3db64fc 100644 --- a/actionpack/test/controller/routing_test.rb +++ b/actionpack/test/controller/routing_test.rb @@ -2237,6 +2237,22 @@ class RouteSetTest < Test::Unit::TestCase ) end + def test_format_is_not_inherit + set.draw do |map| + map.connect '/posts.:format', :controller => 'posts' + end + + assert_equal '/posts', set.generate( + {:controller => 'posts'}, + {:controller => 'posts', :action => 'index', :format => 'xml'} + ) + + assert_equal '/posts.xml', set.generate( + {:controller => 'posts', :format => 'xml'}, + {:controller => 'posts', :action => 'index', :format => 'xml'} + ) + end + def test_expiry_determination_should_consider_values_with_to_param set.draw { |map| map.connect 'projects/:project_id/:controller/:action' } assert_equal '/projects/1/post/show', set.generate( |