diff options
-rw-r--r-- | railties/lib/rails/application.rb | 2 | ||||
-rw-r--r-- | railties/test/application/routing_test.rb | 32 |
2 files changed, 33 insertions, 1 deletions
diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 047d252625..bc74ac8646 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -400,7 +400,7 @@ module Rails reload_routes! end end - ActionDispatch::Callbacks.before_dispatch { |callbacks| reload_routes } + ActionDispatch::Callbacks.before_dispatch { |callbacks| reload_routes.call } end end diff --git a/railties/test/application/routing_test.rb b/railties/test/application/routing_test.rb index 752218b943..decde056fd 100644 --- a/railties/test/application/routing_test.rb +++ b/railties/test/application/routing_test.rb @@ -119,5 +119,37 @@ module ApplicationTests get '/bar' assert_equal 'bar', last_response.body end + + test "reloads routes when configuration is changed" do + controller :foo, <<-RUBY + class FooController < ActionController::Base + def bar + render :text => "bar" + end + + def baz + render :text => "baz" + end + end + RUBY + + app_file 'config/routes.rb', <<-RUBY + ActionController::Routing::Routes.draw do |map| + match 'foo', :to => 'foo#bar' + end + RUBY + + get '/foo' + assert_equal 'bar', last_response.body + + app_file 'config/routes.rb', <<-RUBY + ActionController::Routing::Routes.draw do |map| + match 'foo', :to => 'foo#baz' + end + RUBY + + get '/foo' + assert_equal 'baz', last_response.body + end end end |