aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-04-12 20:23:35 +0200
committerJosé Valim <jose.valim@gmail.com>2010-04-12 20:23:35 +0200
commit86defed5ad6c1ec95b2f07a93982a514e2347749 (patch)
tree3d0bb0c35f776cd2afacb5ec160aaeb4e329a2c9 /actionpack/lib/action_dispatch/routing
parent25cb21328a1eb4e6d25b1f7355563684423dd108 (diff)
downloadrails-86defed5ad6c1ec95b2f07a93982a514e2347749.tar.gz
rails-86defed5ad6c1ec95b2f07a93982a514e2347749.tar.bz2
rails-86defed5ad6c1ec95b2f07a93982a514e2347749.zip
Fix a bug in url generation for generic routes.
Diffstat (limited to 'actionpack/lib/action_dispatch/routing')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb11
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 9c30f2a27a..53585740ce 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -129,7 +129,10 @@ module ActionDispatch
{}
end
- defaults[:controller] ||= @options[:controller] || default_controller
+ defaults[:controller] ||= default_controller
+
+ defaults.delete(:controller) if defaults[:controller].blank?
+ defaults.delete(:action) if defaults[:action].blank?
if defaults[:controller].blank? && segment_keys.exclude?("controller")
raise ArgumentError, "missing :controller"
@@ -177,7 +180,11 @@ module ActionDispatch
end
def default_controller
- @scope[:controller].to_s if @scope[:controller]
+ if @options[:controller]
+ @options[:controller].to_s
+ elsif @scope[:controller]
+ @scope[:controller].to_s
+ end
end
end