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

Routing method shorthand shouldn't clobber :to options

This commit is contained in:
Joshua Peek 2010-01-15 14:53:54 -06:00
parent ead93c5be5
commit 184ef28f55
2 changed files with 19 additions and 2 deletions

View file

@ -560,10 +560,10 @@ module ActionDispatch
if args.first.is_a?(Symbol)
action = args.first
if CRUD_ACTIONS.include?(action)
return match("(.:format)", options.merge(:to => action))
return match("(.:format)", options.reverse_merge(:to => action))
else
with_exclusive_name_prefix(action) do
return match("/#{action_path(action, resources_path_names)}(.:format)", options.merge(:to => action))
return match("/#{action_path(action, resources_path_names)}(.:format)", options.reverse_merge(:to => action))
end
end
end

View file

@ -97,6 +97,13 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
end
end
resources :replies do
member do
put :answer, :to => :mark_as_answer
delete :answer, :to => :unmark_as_answer
end
end
resources :posts, :only => [:index, :show]
match 'sprockets.js' => ::TestRoutingMapper::SprocketsApp
@ -437,6 +444,16 @@ class TestRoutingMapper < ActionDispatch::IntegrationTest
end
end
def test_replies
with_test_routes do
put '/replies/1/answer'
assert_equal 'replies#mark_as_answer', @response.body
delete '/replies/1/answer'
assert_equal 'replies#unmark_as_answer', @response.body
end
end
def test_posts
with_test_routes do
get '/posts'