diff options
author | Michael Colavita <colavitam@gmail.com> | 2015-07-13 13:48:10 -0400 |
---|---|---|
committer | Michael Colavita <colavitam@gmail.com> | 2015-07-13 13:48:10 -0400 |
commit | 0c8dd2cab6793973384f7320c2cb2b832ec38aff (patch) | |
tree | b670b7c53569e518be44317b7eaa7bd22548fde5 /actionpack/lib/action_dispatch/routing | |
parent | 08e41a043218583d34e34316df82d38e4d7f1b55 (diff) | |
download | rails-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/action_dispatch/routing')
-rw-r--r-- | actionpack/lib/action_dispatch/routing/mapper.rb | 12 |
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 |