1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Automatically convert dashes to underscores for url helpers

This commit is contained in:
Amr Tamimi 2013-10-21 15:40:39 +03:00 committed by Andrew White
parent 080fc9cad3
commit 746abbcc31
4 changed files with 20 additions and 2 deletions

View file

@ -1,3 +1,16 @@
* Add ability to set a prefix name for routes which have hyphen(s).
get '/contact-us' => 'pages#contact'
get '/about-us' => 'pages#about_us'
The above routes will inspected to
Prefix Verb URI Pattern Controller#Action
contact_us GET /contact-us(.:format) pages#contact
about_us GET /about-us(.:format) pages#about_us
*Amr Tamimi*
* Fix stream closing when sending file with `ActionController::Live` included.
Fixes #12381

View file

@ -1440,7 +1440,7 @@ module ActionDispatch
path = path_for_action(action, options.delete(:path))
action = action.to_s.dup
if action =~ /^[\w\/]+$/
if action =~ /^[\w\-\/]+$/
options[:action] ||= action unless action.include?("/")
else
action = nil
@ -1636,6 +1636,7 @@ module ActionDispatch
when :root
[name_prefix, collection_name, prefix]
else
prefix.gsub!(/\-/, '_') if prefix.is_a?(String)
[name_prefix, member_name, prefix]
end

View file

@ -37,6 +37,7 @@ module ActionDispatch
end
engine.routes.draw do
get '/cart', :to => 'cart#show'
get '/view-cart', :to => 'cart#show'
end
output = draw do
@ -50,7 +51,8 @@ module ActionDispatch
" blog /blog Blog::Engine",
"",
"Routes for Blog::Engine:",
" cart GET /cart(.:format) cart#show"
" cart GET /cart(.:format) cart#show",
"view_cart GET /view-cart(.:format) cart#show"
], output
end

View file

@ -30,10 +30,12 @@ module ActionDispatch
draw do
get 'foo', to: SimpleApp.new('foo#index')
get 'bar', to: SimpleApp.new('bar#index')
get 'foo-bar', to: SimpleApp.new('bar#index')
end
assert_equal '/foo', url_helpers.foo_path
assert_equal '/bar', url_helpers.bar_path
assert_equal '/foo-bar', url_helpers.foo_bar_path
end
test "url helpers are updated when route is updated" do