Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Don't force singularization of singleton resource names, e.g. /prefer…

…ences [#4089 state:resolved]

Signed-off-by: Joshua Peek <josh@joshpeek.com>
  • Loading branch information...
commit 96bc6bcfee704701de1a9c4c3c6a7c265610d34d 1 parent 16572fd
@pixeltrix pixeltrix authored josh committed
View
16 actionpack/lib/action_dispatch/routing/mapper.rb
@@ -362,11 +362,11 @@ def self.default_actions
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 @@ def action_type(action)
end
def name
- options[:as] || plural
+ options[:as] || @name
end
def controller
@@ -438,8 +438,8 @@ def action_type(action)
end
end
- def name
- options[:as] || singular
+ def member_name
+ name
end
end
@@ -468,8 +468,8 @@ def resource(*resources, &block)
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
View
7 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 @@ def test_default_singleton_restful_route_uses_get
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|
Please sign in to comment.
Something went wrong with that request. Please try again.