aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJosé Valim <jose.valim@gmail.com>2010-04-12 16:49:41 +0200
committerJosé Valim <jose.valim@gmail.com>2010-04-12 16:49:41 +0200
commita8b1ca26d77823e7f51b9be1b64ff1aa5cc125b2 (patch)
tree84065d0b8ba89231ffb35298ba6bd39d81295cc7 /actionpack
parentccf33660a1548dadd123a92df6de2de946d208c4 (diff)
downloadrails-a8b1ca26d77823e7f51b9be1b64ff1aa5cc125b2.tar.gz
rails-a8b1ca26d77823e7f51b9be1b64ff1aa5cc125b2.tar.bz2
rails-a8b1ca26d77823e7f51b9be1b64ff1aa5cc125b2.zip
Ensure match path, :controller => name works as expected.
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb6
-rw-r--r--actionpack/test/dispatch/routing_test.rb9
2 files changed, 13 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index 3e15caee2d..9c30f2a27a 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -124,11 +124,13 @@ module ActionDispatch
controller, action = to.split('#')
{ :controller => controller, :action => action }
when Symbol
- { :action => to.to_s }.merge(default_controller ? { :controller => default_controller } : {})
+ { :action => to.to_s }
else
- default_controller ? { :controller => default_controller } : {}
+ {}
end
+ defaults[:controller] ||= @options[:controller] || default_controller
+
if defaults[:controller].blank? && segment_keys.exclude?("controller")
raise ArgumentError, "missing :controller"
end
diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb
index 411a28d8ee..d32d708b35 100644
--- a/actionpack/test/dispatch/routing_test.rb
+++ b/actionpack/test/dispatch/routing_test.rb
@@ -52,6 +52,8 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
match 'global/:action'
end
+ match "/local/:action", :controller => "local"
+
constraints(:ip => /192\.168\.1\.\d\d\d/) do
get 'admin' => "queenbee#index"
end
@@ -415,6 +417,13 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
end
end
+ def test_local
+ with_test_routes do
+ get '/local/dashboard'
+ assert_equal 'local#dashboard', @response.body
+ end
+ end
+
def test_projects
with_test_routes do
get '/projects'