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

Fixed that Routes would raise NameErrors if a controller component contains characters that are not valid constant names #733 [Nicholas Seckar]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@803 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
David Heinemeier Hansson 2005-02-27 17:12:35 +00:00
parent 8cddbf0d37
commit 630638b00e
3 changed files with 14 additions and 0 deletions

View file

@ -1,5 +1,7 @@
*SVN*
* Fixed that Routes would raise NameErrors if a controller component contains characters that are not valid constant names #733 [Nicholas Seckar]
* Added PATH_INFO access from the request that allows urls like the following to be interpreted by rails: http://www.example.com/dispatcher.cgi/controller/action -- that makes it possible to use rails as a CGI under lighttpd and would also allow (for example) Rublog to be ported to rails without breaking existing links to Rublog-powered blogs. #728 [Jamis Buck]
* Fixed that caching the root would result in .html not index.html #731 [alisdair]

View file

@ -134,6 +134,7 @@ module ActionController
def eat_path_to_controller(path)
path.inject([Controllers, 1]) do |(mod, length), name|
name = name.camelize
return nil, nil unless /^[A-Z][_a-zA-Z\d]*$/ =~ name
controller_name = name + "Controller"
return mod.const_get(controller_name), path[length..-1] if mod.const_available? controller_name
return nil, nil unless mod.const_available? name

View file

@ -479,6 +479,17 @@ class RouteSetTests < Test::Unit::TestCase
@request.path_parameters = {:controller => 'admin/users', :action => 'index'}
verify_generate 'admin/users', {}
end
def test_url_with_spaces_in_controller
@request.path = 'not%20a%20valid/controller/name'
@set.add_route(@rails_route) if @set.empty?
assert_raises(ActionController::RoutingError) {@set.recognize!(@request)}
end
def test_url_with_dots_in_controller
@request.path = 'not.valid/controller/name'
@set.add_route(@rails_route) if @set.empty?
assert_raises(ActionController::RoutingError) {@set.recognize!(@request)}
end
end
#require '../assertions/action_pack_assertions.rb'