Implemented resources :foos, :except => :all option

This commit is contained in:
Piotr Sarnacki
2010-08-05 23:16:08 +02:00
parent e6b93fa6db
commit 8958f332bb
2 changed files with 20 additions and 5 deletions

View File

@@ -611,9 +611,18 @@ module ActionDispatch
end
def actions
if only = @options[:only]
only, except = @options.values_at(:only, :except)
if only == :all || except == :none
only = nil
except = []
elsif only == :none || except == :all
only = []
except = nil
end
if only
Array(only).map(&:to_sym)
elsif except = @options[:except]
elsif except
default_actions - Array(except).map(&:to_sym)
else
default_actions

View File

@@ -1029,7 +1029,9 @@ class ResourcesTest < ActionController::TestCase
def test_resource_has_only_collection_action
with_routing do |set|
set.draw do
resources :products, :except => :all, :collection => { :sale => :get }
resources :products, :except => :all do
get :sale, :on => :collection
end
end
assert_resource_allowed_routes('products', {}, { :id => '1' }, [], [:index, :new, :create, :show, :edit, :update, :destroy])
@@ -1043,7 +1045,9 @@ class ResourcesTest < ActionController::TestCase
def test_resource_has_only_member_action
with_routing do |set|
set.draw do
resources :products, :except => :all, :member => { :preview => :get }
resources :products, :except => :all do
get :preview, :on => :member
end
end
assert_resource_allowed_routes('products', {}, { :id => '1' }, [], [:index, :new, :create, :show, :edit, :update, :destroy])
@@ -1076,7 +1080,9 @@ class ResourcesTest < ActionController::TestCase
with_routing do |set|
set.draw do
resources :products, :only => [:index, :show] do
resources :images, :member => { :thumbnail => :get }, :only => :show
resources :images, :only => :show do
get :thumbnail, :on => :member
end
end
end