aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch
diff options
context:
space:
mode:
authorAndrew White <andyw@pixeltrix.co.uk>2010-08-31 17:02:49 +0100
committerJosé Valim <jose.valim@gmail.com>2010-09-01 10:09:14 +0200
commit02480a897be25c24f59180513d37649a31ad3835 (patch)
treef365ca137c9994a3019a06cbec3574331b585a47 /actionpack/lib/action_dispatch
parentdbf82557e46b748e98a0ab6ed4ab6c823cac4dd2 (diff)
downloadrails-02480a897be25c24f59180513d37649a31ad3835.tar.gz
rails-02480a897be25c24f59180513d37649a31ad3835.tar.bz2
rails-02480a897be25c24f59180513d37649a31ad3835.zip
Move implicit nested call before options handling so that nested constraints work [#5513 state:resolved]
Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionpack/lib/action_dispatch')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb16
1 files changed, 7 insertions, 9 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index a3bd4771c2..a2570cb877 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -909,6 +909,11 @@ module ActionDispatch
return true
end
+ if resource_scope?
+ nested { send(method, resources.pop, options, &block) }
+ return true
+ end
+
options.keys.each do |k|
(options[:constraints] ||= {})[k] = options.delete(k) if options[k].is_a?(Regexp)
end
@@ -925,13 +930,6 @@ module ActionDispatch
options.merge!(scope_action_options) if scope_action_options?
end
- if resource_scope?
- nested do
- send(method, resources.pop, options, &block)
- end
- return true
- end
-
false
end
@@ -1017,11 +1015,11 @@ module ActionDispatch
end
def id_constraint?
- @scope[:id].is_a?(Regexp) || (@scope[:constraints] && @scope[:constraints][:id].is_a?(Regexp))
+ @scope[:constraints] && @scope[:constraints][:id].is_a?(Regexp)
end
def id_constraint
- @scope[:id] || @scope[:constraints][:id]
+ @scope[:constraints][:id]
end
def canonical_action?(action, flag)