aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJoshua Peek <josh@joshpeek.com>2009-11-03 11:23:22 -0600
committerJoshua Peek <josh@joshpeek.com>2009-11-03 11:23:22 -0600
commitf950d0b4af54c3d387024dce2c5e2bc56aef0fc3 (patch)
tree44a61c307d733e48399e09e8a99dca92dc5e62d2 /actionpack
parentaaa5a692a3e471f7f8f50957aac1c06fd30ec166 (diff)
downloadrails-f950d0b4af54c3d387024dce2c5e2bc56aef0fc3.tar.gz
rails-f950d0b4af54c3d387024dce2c5e2bc56aef0fc3.tar.bz2
rails-f950d0b4af54c3d387024dce2c5e2bc56aef0fc3.zip
Fix simple resource named routes for new routing dsl
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb28
-rw-r--r--actionpack/test/dispatch/routing_test.rb25
2 files changed, 39 insertions, 14 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index d6d822842b..ebfb4c9be2 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -20,15 +20,20 @@ module ActionDispatch
return self
end
- controller(resource) do
+ singular = resource.to_s
+ plural = singular.pluralize
+
+ controller(plural) do
namespace(resource) do
with_scope_level(:resource) do
yield if block_given?
- get "", :to => :show
+ get "", :to => :show, :as => "#{singular}"
post "", :to => :create
put "", :to => :update
- delete "", :to => :destory
+ delete "", :to => :destroy
+ get "new", :to => :new, :as => "new_#{singular}"
+ get "edit", :to => :edit, :as => "edit_#{singular}"
end
end
end
@@ -54,22 +59,25 @@ module ActionDispatch
return self
end
+ plural = resource.to_s
+ singular = plural.singularize
+
controller(resource) do
namespace(resource) do
with_scope_level(:resources) do
yield if block_given?
member do
- get "", :to => :show
+ get "", :to => :show, :as => "#{singular}"
put "", :to => :update
- delete "", :to => :destory
- get "edit", :to => :edit
+ delete "", :to => :destroy
+ get "edit", :to => :edit, :as => "edit_#{singular}"
end
collection do
- get "", :to => :index
+ get "", :to => :index, :as => "#{plural}"
post "", :to => :create
- get "new", :to => :new
+ get "new", :to => :new, :as => "new_#{singular}"
end
end
end
@@ -221,6 +229,10 @@ module ActionDispatch
map_method(:delete, *args, &block)
end
+ def root(options = {})
+ match '/', options.merge(:as => :root)
+ end
+
def match(*args)
options = args.last.is_a?(Hash) ? args.pop : {}
diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb
index 74e6c8e72d..7917c1974b 100644
--- a/actionpack/test/dispatch/routing_test.rb
+++ b/actionpack/test/dispatch/routing_test.rb
@@ -190,8 +190,21 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
def test_projects
with_test_routes do
+ get '/projects'
+ assert_equal 'projects#index', @response.body
+ assert_equal '/projects', projects_path
+
+ get '/projects/new'
+ assert_equal 'projects#new', @response.body
+ assert_equal '/projects/new', new_project_path
+
get '/projects/1'
assert_equal 'projects#show', @response.body
+ assert_equal '/projects/1', project_path(:id => '1')
+
+ get '/projects/1/edit'
+ assert_equal 'projects#edit', @response.body
+ assert_equal '/projects/1/edit', edit_project_path(:id => '1')
end
end
@@ -231,7 +244,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
assert_equal 'people#index', @response.body
get '/projects/1/companies/1/avatar'
- assert_equal 'avatar#show', @response.body
+ assert_equal 'avatars#show', @response.body
end
end
@@ -254,7 +267,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
assert_equal 'people#show', @response.body
get '/projects/1/people/1/7a2dec8/avatar'
- assert_equal 'avatar#show', @response.body
+ assert_equal 'avatars#show', @response.body
put '/projects/1/people/1/accessible_projects'
assert_equal 'people#accessible_projects', @response.body
@@ -282,7 +295,7 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
assert_equal 'posts#preview', @response.body
get '/projects/1/posts/1/subscription'
- assert_equal 'subscription#show', @response.body
+ assert_equal 'subscriptions#show', @response.body
get '/projects/1/posts/1/comments'
assert_equal 'comments#index', @response.body
@@ -329,13 +342,13 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
def test_account_namespace
with_test_routes do
get '/account/subscription'
- assert_equal 'subscription#show', @response.body
+ assert_equal 'subscriptions#show', @response.body
get '/account/credit'
- assert_equal 'credit#show', @response.body
+ assert_equal 'credits#show', @response.body
get '/account/credit_card'
- assert_equal 'credit_card#show', @response.body
+ assert_equal 'credit_cards#show', @response.body
end
end