diff options
author | José Valim <jose.valim@gmail.com> | 2011-07-25 15:51:43 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-07-25 15:51:43 -0700 |
commit | 647eeb1881fba7863d7281515f9863f47e552ed5 (patch) | |
tree | d63662e83b3657d78df8aeabe9f09ff522e716e9 | |
parent | cb85d70d61705381a57cb99d8dcd4d7083f0a143 (diff) | |
parent | c17254319b7fadb789cde24d1e72a233a33e4ac7 (diff) | |
download | rails-647eeb1881fba7863d7281515f9863f47e552ed5.tar.gz rails-647eeb1881fba7863d7281515f9863f47e552ed5.tar.bz2 rails-647eeb1881fba7863d7281515f9863f47e552ed5.zip |
Merge pull request #2262 from sferik/format_true
Allow a route to have :format => true
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 2 | ||||
-rw-r--r-- | actionpack/test/dispatch/mapper_test.rb | 7 | ||||
-rw-r--r-- | railties/guides/source/routing.textile | 6 |
3 files changed, 15 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 1331f67a78..003bc1dc2c 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -119,6 +119,8 @@ module ActionDispatch path elsif path.include?(":format") || path.end_with?('/') path + elsif @options[:format] == true + "#{path}.:format" else "#{path}(.:format)" end diff --git a/actionpack/test/dispatch/mapper_test.rb b/actionpack/test/dispatch/mapper_test.rb index b6c08ffc33..81f0efb76e 100644 --- a/actionpack/test/dispatch/mapper_test.rb +++ b/actionpack/test/dispatch/mapper_test.rb @@ -83,6 +83,13 @@ module ActionDispatch assert_equal '/*path', fakeset.conditions.first[:path_info] assert_nil fakeset.requirements.first[:path] end + + def test_map_wildcard_with_format_true + fakeset = FakeSet.new + mapper = Mapper.new fakeset + mapper.match '/*path', :to => 'pages#show', :format => true + assert_equal '/*path.:format', fakeset.conditions.first[:path_info] + end end end end diff --git a/railties/guides/source/routing.textile b/railties/guides/source/routing.textile index 68fb22f5d8..99dd9a1cd2 100644 --- a/railties/guides/source/routing.textile +++ b/railties/guides/source/routing.textile @@ -569,6 +569,12 @@ NOTE: By requesting +"/foo/bar.json"+, your +params[:pages]+ will be equals to + match '*pages' => 'pages#show', :format => false </ruby> +NOTE: If you want to make the format segment mandatory, so it cannot be omitted, you can supply +:format => true+ like this: + +<ruby> +match '*pages' => 'pages#show', :format => true +</ruby> + h4. Redirection You can redirect any path to another path using the +redirect+ helper in your router: |