diff options
Diffstat (limited to 'actionpack/lib/action_dispatch/routing')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index f7fb4ddd7a..e283cf0403 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -321,6 +321,8 @@ module ActionDispatch end module Resources + CRUD_ACTIONS = [:index, :show, :new, :edit, :create, :update, :destroy] + class Resource #:nodoc: attr_reader :plural, :singular @@ -489,8 +491,13 @@ module ActionDispatch end if args.first.is_a?(Symbol) - with_exclusive_name_prefix(args.first) do - return match("/#{args.first}(.:format)", options.merge(:to => args.first.to_sym)) + action = args.first + if CRUD_ACTIONS.include?(action) + return match("(.:format)", options.merge(:to => action)) + else + with_exclusive_name_prefix(action) do + return match("/#{action}(.:format)", options.merge(:to => action)) + end end end |