mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Ensure routing generator works with non-string keys. [#172 state:resolved]
Make sure that (with recent correction to globbed parameter escaping) non-string values can still be passed route generation helpers for globbed route segments. For example, foo_path([1, 2, 3]) should still work for a route like map.foo "*globbed" by implicitely calling to_s on the Fixnums. Signed-off-by: Pratik Naik <pratiknaik@gmail.com>
This commit is contained in:
parent
77f873acf2
commit
345f030c5b
2 changed files with 8 additions and 1 deletions
|
@ -249,7 +249,7 @@ module ActionController
|
|||
end
|
||||
|
||||
def extract_value
|
||||
"#{local_name} = hash[:#{key}] && hash[:#{key}].collect { |path_component| URI.escape(path_component, ActionController::Routing::Segment::UNSAFE_PCHAR) }.to_param #{"|| #{default.inspect}" if default}"
|
||||
"#{local_name} = hash[:#{key}] && hash[:#{key}].collect { |path_component| URI.escape(path_component.to_param, ActionController::Routing::Segment::UNSAFE_PCHAR) }.to_param #{"|| #{default.inspect}" if default}"
|
||||
end
|
||||
|
||||
def default
|
||||
|
|
|
@ -50,6 +50,13 @@ class UriReservedCharactersRoutingTest < Test::Unit::TestCase
|
|||
:additional => ["add#{@segment}itional-1", "add#{@segment}itional-2"] }
|
||||
assert_equal options, @set.recognize_path("/controller/act#{@escaped}ion/var#{@escaped}iable/add#{@escaped}itional-1/add#{@escaped}itional-2")
|
||||
end
|
||||
|
||||
def test_route_generation_allows_passing_non_string_values_to_generated_helper
|
||||
assert_equal "/controller/action/variable/1/2", @set.generate(:controller => "controller",
|
||||
:action => "action",
|
||||
:variable => "variable",
|
||||
:additional => [1, 2])
|
||||
end
|
||||
end
|
||||
|
||||
class LegacyRouteSetTests < Test::Unit::TestCase
|
||||
|
|
Loading…
Reference in a new issue