diff options
author | Andrew White <andyw@pixeltrix.co.uk> | 2011-02-14 00:40:53 +0000 |
---|---|---|
committer | Andrew White <andyw@pixeltrix.co.uk> | 2011-02-14 01:01:20 +0000 |
commit | fd7605826a6e4f7590e4abf42c6c9d0923afc4ef (patch) | |
tree | 050282052ae4fdf2154f7a428e81f826652273c9 | |
parent | 48fe62ee571002bdee694a5722285d4055a5e695 (diff) | |
download | rails-fd7605826a6e4f7590e4abf42c6c9d0923afc4ef.tar.gz rails-fd7605826a6e4f7590e4abf42c6c9d0923afc4ef.tar.bz2 rails-fd7605826a6e4f7590e4abf42c6c9d0923afc4ef.zip |
Add notes on how to override the default :id constraint [#5994 state:resolved]
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 9 | ||||
-rw-r--r-- | railties/guides/source/routing.textile | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 2f12192af4..85c09a3fda 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -847,6 +847,14 @@ module ActionDispatch # resources :posts, :comments # end # + # By default the :id parameter doesn't accept dots. If you need to + # use dots as part of the :id parameter add a constraint which + # overrides this restriction, e.g: + # + # resources :articles, :id => /[^\/]+/ + # + # This allows any character other than a slash as part of your :id. + # module Resources # CANONICAL_ACTIONS holds all actions that does not need a prefix or # a path appended since they fit properly in their scope level. @@ -1103,7 +1111,6 @@ module ActionDispatch # # # resource actions are at /admin/posts. # resources :posts, :path => "admin" - # def resources(*resources, &block) options = resources.extract_options! diff --git a/railties/guides/source/routing.textile b/railties/guides/source/routing.textile index 28a207c436..d214031b31 100644 --- a/railties/guides/source/routing.textile +++ b/railties/guides/source/routing.textile @@ -391,6 +391,8 @@ NOTE: You can't use +namespace+ or +:module+ with a +:controller+ path segment. match ':controller(/:action(/:id))', :controller => /admin\/[^\/]+/ </ruby> +TIP: By default dynamic segments don't accept dots - this is because the dot is used as a separator for formatted routes. If you need to use a dot within a dynamic segment add a constraint which overrides this - for example +:id => /[^\/]+/+ allows anything except a slash. + h4. Static Segments You can specify static segments when creating a route: @@ -646,6 +648,8 @@ end NOTE: Of course, you can use the more advanced constraints available in non-resourceful routes in this context. +TIP: By default the +:id+ parameter doesn't accept dots - this is because the dot is used as a separator for formatted routes. If you need to use a dot within an +:id+ add a constraint which overrides this - for example +:id => /[^\/]+/+ allows anything except a slash. + h4. Overriding the Named Helpers The +:as+ option lets you override the normal naming for the named route helpers. For example: |