aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_dispatch/routing/mapper.rb
diff options
context:
space:
mode:
authorAndrew White <andyw@pixeltrix.co.uk>2010-08-24 07:27:54 +0100
committerJosé Valim <jose.valim@gmail.com>2010-08-24 10:26:25 -0300
commit2fb0cbec024c5b51451deab7e390e2d4f712cf8f (patch)
treea2b4c6a7ad31d887581b258a9dd03db7aa72fa15 /actionpack/lib/action_dispatch/routing/mapper.rb
parenta0284791df3caed66e3cabb80a62680d69182ddb (diff)
downloadrails-2fb0cbec024c5b51451deab7e390e2d4f712cf8f.tar.gz
rails-2fb0cbec024c5b51451deab7e390e2d4f712cf8f.tar.bz2
rails-2fb0cbec024c5b51451deab7e390e2d4f712cf8f.zip
When custom resource actions are specified using strings add the default name and action if the string is a valid ruby method name.
[#5431 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
Diffstat (limited to 'actionpack/lib/action_dispatch/routing/mapper.rb')
-rw-r--r--actionpack/lib/action_dispatch/routing/mapper.rb8
1 files changed, 6 insertions, 2 deletions
diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb
index 23b13d1d5d..0a6cd63b56 100644
--- a/actionpack/lib/action_dispatch/routing/mapper.rb
+++ b/actionpack/lib/action_dispatch/routing/mapper.rb
@@ -736,8 +736,12 @@ module ActionDispatch
end
elsif resource_method_scope?
path = path_for_custom_action
- options[:action] ||= action
- options[:as] = name_for_action(options[:as]) if options[:as]
+ if action =~ /^[a-zA-Z][_a-zA-Z0-9]*$/
+ options[:action] ||= action
+ options[:as] = name_for_action(action, options[:as])
+ else
+ options[:as] = name_for_action(options[:as]) if options[:as]
+ end
args.push(options)
with_exclusive_scope do