Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Make Routes drop the default for action when the controller changes #651



git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@640 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit 29066036f2c061d9aab1ab1dc2423e01626959c2 1 parent c00bf5f
@dhh dhh authored
View
1  actionpack/lib/action_controller/routing.rb
@@ -224,6 +224,7 @@ def expand_controller_path!(options, defaults)
else
relative_to = defaults[:controller] ? defaults[:controller].split('/')[0..-2].join('/') : ''
options[:controller] = relative_to.empty? ? options[:controller] : "#{relative_to}/#{options[:controller]}"
+ defaults.delete(:action) unless options[:controller] == defaults[:controller]
end
else
options[:controller] = defaults[:controller]
View
9 actionpack/test/controller/routing_tests.rb
@@ -5,7 +5,6 @@
# ActionController::Routing::RailsRoute: 0 / 4 = 0.00%
# ActionController::Routing::Route: 0 / 8 = 0.00%
-RAILS_ROOT = ""
require File.dirname(__FILE__) + '/../abstract_unit'
require 'test/unit'
require 'cgi'
@@ -394,10 +393,16 @@ def test_generate_no_match
assert_raises(ActionController::RoutingError) {@set.generate({}, @request)}
end
-
def test_encoded_strings
verify_recognize(Controllers::Admin::UserController, {:controller => 'admin/user', :action => 'info', :id => "Nicholas Seckar"}, path='/admin/user/info/Nicholas%20Seckar')
end
+
+ def test_action_dropped_when_controller_changes
+ @request.path_parameters = {:controller => 'content', :action => 'list'}
+ options = {:controller => 'resource'}
+ @set.connect ':action/:controller'
+ verify_generate('index/resource', options)
+ end
end
#require '../assertions/action_pack_assertions.rb'
Please sign in to comment.
Something went wrong with that request. Please try again.