提交 7a224356 编写于 作者: D David Heinemeier Hansson

Added that Array#to_param calls to_param on all it's elements (closes #10473) [brandon]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8384 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 3aa54c5e
*SVN*
* Added that Array#to_param calls to_param on all it's elements #10473 [brandon]
* Ensure asset cache directories are automatically created. #10337 [Josh Peek, Chu Yeow]
* render :xml and :json preserve custom content types. #10388 [jmettraux, Chu Yeow]
......
......@@ -24,9 +24,9 @@ def to_sentence(options = {})
end
end
# When an array is given to url_for, it is converted to a slash separated string.
# Calls to_param on all its elements and joins the result with slashes. This is used by url_for in Action Pack.
def to_param
join '/'
map(&:to_param).join '/'
end
# Converts an array into a string suitable for use as a URL query string, using the given <tt>key</tt> as the
......
......@@ -16,6 +16,12 @@ def test_to
end
class ArrayExtToParamTests < Test::Unit::TestCase
class ToParam < String
def to_param
"#{self}1"
end
end
def test_string_array
assert_equal '', %w().to_param
assert_equal 'hello/world', %w(hello world).to_param
......@@ -25,6 +31,10 @@ def test_string_array
def test_number_array
assert_equal '10/20', [10, 20].to_param
end
def test_to_param_array
assert_equal 'custom1/param1', [ToParam.new('custom'), ToParam.new('param')].to_param
end
end
class ArrayExtToSentenceTests < Test::Unit::TestCase
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册