mirror of
https://github.com/github/rails.git
synced 2026-01-31 09:18:17 -05:00
Fix routing to correctly determine when generation fails. Closes #6300.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@5314 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
*SVN*
|
||||
|
||||
* Fix routing to correctly determine when generation fails. Closes #6300. [psross].
|
||||
|
||||
* Fix broken assert_generates when extra keys are being checked. [Jamis Buck]
|
||||
|
||||
* Replace KCODE checks with String#chars for truncate. Closes #6385 [Manfred Stienstra]
|
||||
|
||||
@@ -1229,7 +1229,7 @@ module ActionController
|
||||
|
||||
routes.each do |route|
|
||||
results = route.send(method, options, merged, expire_on)
|
||||
return results if results
|
||||
return results if results && (!results.is_a?(Array) || results.first)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1253,6 +1253,33 @@ class RouteSetTest < Test::Unit::TestCase
|
||||
extras = set.extra_keys(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
|
||||
assert_equal %w(that this), extras.map(&:to_s).sort
|
||||
end
|
||||
|
||||
def test_generate_extras_not_first
|
||||
set.draw do |map|
|
||||
map.connect ':controller/:action/:id.:format'
|
||||
map.connect ':controller/:action/:id'
|
||||
end
|
||||
path, extras = set.generate_extras(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
|
||||
assert_equal "/foo/bar/15", path
|
||||
assert_equal %w(that this), extras.map(&:to_s).sort
|
||||
end
|
||||
|
||||
def test_generate_not_first
|
||||
set.draw do |map|
|
||||
map.connect ':controller/:action/:id.:format'
|
||||
map.connect ':controller/:action/:id'
|
||||
end
|
||||
assert_equal "/foo/bar/15?this=hello", set.generate(:controller => "foo", :action => "bar", :id => 15, :this => "hello")
|
||||
end
|
||||
|
||||
def test_extra_keys_not_first
|
||||
set.draw do |map|
|
||||
map.connect ':controller/:action/:id.:format'
|
||||
map.connect ':controller/:action/:id'
|
||||
end
|
||||
extras = set.extra_keys(:controller => "foo", :action => "bar", :id => 15, :this => "hello", :that => "world")
|
||||
assert_equal %w(that this), extras.map(&:to_s).sort
|
||||
end
|
||||
|
||||
def test_draw
|
||||
assert_equal 0, set.routes.size
|
||||
|
||||
Reference in New Issue
Block a user