From 184ef28f55bb576e1eaebf915f8ce64aa8823e90 Mon Sep 17 00:00:00 2001 From: Joshua Peek Date: Fri, 15 Jan 2010 14:53:54 -0600 Subject: [PATCH] Routing method shorthand shouldn't clobber :to options --- .../lib/action_dispatch/routing/mapper.rb | 4 ++-- actionpack/test/dispatch/routing_test.rb | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/actionpack/lib/action_dispatch/routing/mapper.rb b/actionpack/lib/action_dispatch/routing/mapper.rb index 277cb48e50..6ff573443b 100644 --- a/actionpack/lib/action_dispatch/routing/mapper.rb +++ b/actionpack/lib/action_dispatch/routing/mapper.rb @@ -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 diff --git a/actionpack/test/dispatch/routing_test.rb b/actionpack/test/dispatch/routing_test.rb index 87d8d7730a..2fcc5fef35 100644 --- a/actionpack/test/dispatch/routing_test.rb +++ b/actionpack/test/dispatch/routing_test.rb @@ -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'