aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew White <andyw@pixeltrix.co.uk>2010-03-15 09:45:29 -0500
committerJoshua Peek <josh@joshpeek.com>2010-03-15 09:45:29 -0500
commit96bc6bcfee704701de1a9c4c3c6a7c265610d34d (patch)
tree2abfc8ca7811643738de52bd3ebd4224bc774c27
parent16572fd46e189d80c6be7d499e687fe129053a2c (diff)
downloadrails-96bc6bcfee704701de1a9c4c3c6a7c265610d34d.tar.gz
rails-96bc6bcfee704701de1a9c4c3c6a7c265610d34d.tar.bz2
rails-96bc6bcfee704701de1a9c4c3c6a7c265610d34d.zip
Don't force singularization of singleton resource names, e.g. /preferences [#4089 state:resolved]
Signed-off-by: Joshua Peek <josh@joshpeek.com>
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb16
-rw-r--r--actionpack/test/controller/resources_test.rb7
2 files changed, 15 insertions, 8 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index 0b7b09ee7a..f9b27a5a03 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -362,11 +362,11 @@ module ActionDispatch
attr_reader :plural, :singular, :options
def initialize(entities, options = {})
- entities = entities.to_s
+ @name = entities.to_s
@options = options
- @plural = entities.pluralize
- @singular = entities.singularize
+ @plural = @name.pluralize
+ @singular = @name.singularize
end
def default_actions
@@ -393,7 +393,7 @@ module ActionDispatch
end
def name
- options[:as] || plural
+ options[:as] || @name
end
def controller
@@ -438,8 +438,8 @@ module ActionDispatch
end
end
- def name
- options[:as] || singular
+ def member_name
+ name
end
end
@@ -468,8 +468,8 @@ module ActionDispatch
post :create if resource.actions.include?(:create)
put :update if resource.actions.include?(:update)
delete :destroy if resource.actions.include?(:destroy)
- get :new, :as => resource.singular if resource.actions.include?(:new)
- get :edit, :as => resource.singular if resource.actions.include?(:edit)
+ get :new, :as => resource.name if resource.actions.include?(:new)
+ get :edit, :as => resource.name if resource.actions.include?(:edit)
end
end
diff --git a/actionpack/test/controller/resources_test.rb b/actionpack/test/controller/resources_test.rb
index f60045bba6..17c645c04c 100644
--- a/actionpack/test/controller/resources_test.rb
+++ b/actionpack/test/controller/resources_test.rb
@@ -16,6 +16,7 @@ class AccountsController < ResourcesController; end
class AdminController < ResourcesController; end
class ProductsController < ResourcesController; end
class ImagesController < ResourcesController; end
+class PreferencesController < ResourcesController; end
module Backoffice
class ProductsController < ResourcesController; end
@@ -1125,6 +1126,12 @@ class ResourcesTest < ActionController::TestCase
end
end
+ def test_singleton_resource_name_is_not_singularized
+ with_singleton_resources(:preferences) do
+ assert_singleton_restful_for :preferences
+ end
+ end
+
protected
def with_restful_routing(*args)
with_routing do |set|