From 1847d33b4bc776fbd4746c06db41965744377ed6 Mon Sep 17 00:00:00 2001 From: Andrew White Date: Tue, 24 Aug 2010 22:16:34 +0100 Subject: Use nested scope for routes defined at the :resources scope level (as in Rails 2.3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: José Valim --- actionpack/lib/action_dispatch/routing/mapper.rb | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'actionpack/lib/action_dispatch/routing/mapper.rb') diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 9aa34e7ba5..9a92ed0b62 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -695,15 +695,14 @@ module ActionDispatch raise ArgumentError, "Unknown scope #{on.inspect} given to :on" end - if @scope[:scope_level] == :resource + if @scope[:scope_level] == :resources + args.push(options) + return nested { match(*args) } + elsif @scope[:scope_level] == :resource args.push(options) return member { match(*args) } end - if resource_scope? - raise ArgumentError, "can't define route directly in resource(s) scope" - end - action = args.first path = path_for_action(action, options.delete(:path)) @@ -900,6 +899,8 @@ module ActionDispatch end name = case @scope[:scope_level] + when :nested + [member_name, prefix] when :collection [prefix, name_prefix, collection_name] when :new -- cgit v1.2.3