aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib
diff options
context:
space:
mode:
authorMichael Colavita <colavitam@gmail.com>2015-07-13 13:48:10 -0400
committerMichael Colavita <colavitam@gmail.com>2015-07-13 13:48:10 -0400
commit0c8dd2cab6793973384f7320c2cb2b832ec38aff (patch)
treeb670b7c53569e518be44317b7eaa7bd22548fde5 /actionpack/lib
parent08e41a043218583d34e34316df82d38e4d7f1b55 (diff)
downloadrails-0c8dd2cab6793973384f7320c2cb2b832ec38aff.tar.gz
rails-0c8dd2cab6793973384f7320c2cb2b832ec38aff.tar.bz2
rails-0c8dd2cab6793973384f7320c2cb2b832ec38aff.zip
:only and :except are now chained for routing resource(s)
Allow chaining the :only and :except options for routing resource(s). Previously, the following yielded routes for both show and destroy: resource :account, :only => [:show, :destroy], :except => :destroy This now yields only the show action. This chaining can be useful for passing optional :except options to code that makes use of the :only option (e.g. for a gem with its own routing methods).
Diffstat (limited to 'actionpack/lib')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index 7cfe4693c1..40e00b55c2 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -1061,16 +1061,22 @@ module ActionDispatch
end
end
- def actions
+ def available_actions
if only = @options[:only]
Array(only).map(&:to_sym)
- elsif except = @options[:except]
- default_actions - Array(except).map(&:to_sym)
else
default_actions
end
end
+ def actions
+ if except = @options[:except]
+ available_actions - Array(except).map(&:to_sym)
+ else
+ available_actions
+ end
+ end
+
def name
@as || @name
end