Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
66cbde01
R
rails
项目概览
张重言
/
rails
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
rails
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
66cbde01
编写于
5月 16, 2012
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #5369 from Greenie0506/add_separator_to_grouped_options_for_select
Add separator option to grouped_options_for_select
上级
8e5f07da
a1ae17e3
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
44 addition
and
4 deletion
+44
-4
actionpack/lib/action_view/helpers/form_options_helper.rb
actionpack/lib/action_view/helpers/form_options_helper.rb
+17
-2
actionpack/test/template/form_options_helper_test.rb
actionpack/test/template/form_options_helper_test.rb
+27
-2
未找到文件。
actionpack/lib/action_view/helpers/form_options_helper.rb
浏览文件 @
66cbde01
...
...
@@ -492,13 +492,28 @@ def option_groups_from_collection_for_select(collection, group_method, group_lab
#
# <b>Note:</b> Only the <tt><optgroup></tt> and <tt><option></tt> tags are returned, so you still have to
# wrap the output in an appropriate <tt><select></tt> tag.
def
grouped_options_for_select
(
grouped_options
,
selected_key
=
nil
,
prompt
=
nil
)
def
grouped_options_for_select
(
*
args
)
grouped_options
=
args
.
shift
options
=
args
.
extract_options!
selected_key
=
args
.
shift
if
prompt
=
args
.
shift
ActiveSupport
::
Deprecation
.
warn
'Passing the prompt to grouped_options_for_select as an argument is deprecated. Please pass it in an options hash.'
else
prompt
=
options
[
:prompt
]
divider
=
options
[
:divider
]
end
body
=
""
.
html_safe
body
.
safe_concat
content_tag
(
:option
,
prompt
,
:value
=>
""
)
if
prompt
grouped_options
=
grouped_options
.
sort
if
grouped_options
.
is_a?
(
Hash
)
grouped_options
.
each
do
|
label
,
container
|
grouped_options
.
each
do
|
container
|
if
divider
label
,
container
=
divider
,
container
else
label
,
container
=
container
end
body
.
safe_concat
content_tag
(
:optgroup
,
options_for_select
(
container
,
selected_key
),
:label
=>
label
)
end
...
...
actionpack/test/template/form_options_helper_test.rb
浏览文件 @
66cbde01
...
...
@@ -296,10 +296,27 @@ def test_grouped_options_for_select_with_array
)
end
def
test_grouped_options_for_select_with_
selected_and_prompt
def
test_grouped_options_for_select_with_
optional_divider
assert_dom_equal
(
"<optgroup label=
\"
----------
\"
><option value=
\"
US
\"
>US</option>
\n
<option value=
\"
Canada
\"
>Canada</option></optgroup><optgroup label=
\"
----------
\"
><option value=
\"
GB
\"
>GB</option>
\n
<option value=
\"
Germany
\"
>Germany</option></optgroup>"
,
grouped_options_for_select
([[
'US'
,
"Canada"
]
,
[
"GB"
,
"Germany"
]],
divider
:"----------"
)
)
end
def
test_grouped_options_for_select_with_selected_and_prompt_deprecated
ActiveSupport
::
Deprecation
.
silence
do
assert_dom_equal
(
"<option value=
\"\"
>Choose a product...</option><optgroup label=
\"
Hats
\"
><option value=
\"
Baseball Cap
\"
>Baseball Cap</option>
\n
<option selected=
\"
selected
\"
value=
\"
Cowboy Hat
\"
>Cowboy Hat</option></optgroup>"
,
grouped_options_for_select
([[
"Hats"
,
[
"Baseball Cap"
,
"Cowboy Hat"
]]],
"Cowboy Hat"
,
"Choose a product..."
)
)
end
end
def
test_grouped_options_for_select_with_selected_and_prompt
assert_dom_equal
(
"<option value=
\"\"
>Choose a product...</option><optgroup label=
\"
Hats
\"
><option value=
\"
Baseball Cap
\"
>Baseball Cap</option>
\n
<option selected=
\"
selected
\"
value=
\"
Cowboy Hat
\"
>Cowboy Hat</option></optgroup>"
,
grouped_options_for_select
([[
"Hats"
,
[
"Baseball Cap"
,
"Cowboy Hat"
]]],
"Cowboy Hat"
,
prompt:
"Choose a product..."
)
)
end
...
...
@@ -307,10 +324,18 @@ def test_grouped_options_for_select_returns_html_safe_string
assert
grouped_options_for_select
([[
"Hats"
,
[
"Baseball Cap"
,
"Cowboy Hat"
]]]).
html_safe?
end
def
test_grouped_options_for_select_with_prompt_returns_html_escaped_string_deprecated
ActiveSupport
::
Deprecation
.
silence
do
assert_dom_equal
(
"<option value=
\"\"
><Choose One></option><optgroup label=
\"
Hats
\"
><option value=
\"
Baseball Cap
\"
>Baseball Cap</option>
\n
<option value=
\"
Cowboy Hat
\"
>Cowboy Hat</option></optgroup>"
,
grouped_options_for_select
([[
"Hats"
,
[
"Baseball Cap"
,
"Cowboy Hat"
]]],
nil
,
'<Choose One>'
))
end
end
def
test_grouped_options_for_select_with_prompt_returns_html_escaped_string
assert_dom_equal
(
"<option value=
\"\"
><Choose One></option><optgroup label=
\"
Hats
\"
><option value=
\"
Baseball Cap
\"
>Baseball Cap</option>
\n
<option value=
\"
Cowboy Hat
\"
>Cowboy Hat</option></optgroup>"
,
grouped_options_for_select
([[
"Hats"
,
[
"Baseball Cap"
,
"Cowboy Hat"
]]],
nil
,
'<Choose One>'
))
grouped_options_for_select
([[
"Hats"
,
[
"Baseball Cap"
,
"Cowboy Hat"
]]],
nil
,
prompt:
'<Choose One>'
))
end
def
test_optgroups_with_with_options_with_hash
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录