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
上级 c00bf5f0
...@@ -224,6 +224,7 @@ def expand_controller_path!(options, defaults) ...@@ -224,6 +224,7 @@ def expand_controller_path!(options, defaults)
else else
relative_to = defaults[:controller] ? defaults[:controller].split('/')[0..-2].join('/') : '' relative_to = defaults[:controller] ? defaults[:controller].split('/')[0..-2].join('/') : ''
options[:controller] = relative_to.empty? ? options[:controller] : "#{relative_to}/#{options[:controller]}" options[:controller] = relative_to.empty? ? options[:controller] : "#{relative_to}/#{options[:controller]}"
defaults.delete(:action) unless options[:controller] == defaults[:controller]
end end
else else
options[:controller] = defaults[:controller] options[:controller] = defaults[:controller]
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
# ActionController::Routing::RailsRoute: 0 / 4 = 0.00% # ActionController::Routing::RailsRoute: 0 / 4 = 0.00%
# ActionController::Routing::Route: 0 / 8 = 0.00% # ActionController::Routing::Route: 0 / 8 = 0.00%
RAILS_ROOT = ""
require File.dirname(__FILE__) + '/../abstract_unit' require File.dirname(__FILE__) + '/../abstract_unit'
require 'test/unit' require 'test/unit'
require 'cgi' require 'cgi'
...@@ -394,10 +393,16 @@ def test_generate_no_match ...@@ -394,10 +393,16 @@ def test_generate_no_match
assert_raises(ActionController::RoutingError) {@set.generate({}, @request)} assert_raises(ActionController::RoutingError) {@set.generate({}, @request)}
end end
def test_encoded_strings def test_encoded_strings
verify_recognize(Controllers::Admin::UserController, {:controller => 'admin/user', :action => 'info', :id => "Nicholas Seckar"}, path='/admin/user/info/Nicholas%20Seckar') verify_recognize(Controllers::Admin::UserController, {:controller => 'admin/user', :action => 'info', :id => "Nicholas Seckar"}, path='/admin/user/info/Nicholas%20Seckar')
end 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 end
#require '../assertions/action_pack_assertions.rb' #require '../assertions/action_pack_assertions.rb'
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册