Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
a16fa9ab
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,发现更多精彩内容 >>
提交
a16fa9ab
编写于
12月 07, 2013
作者:
D
David Heinemeier Hansson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Allow code execution in case no variant has been set with variant.none
上级
76dae289
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
21 addition
and
4 deletion
+21
-4
actionpack/lib/action_controller/metal/mime_responds.rb
actionpack/lib/action_controller/metal/mime_responds.rb
+5
-4
actionpack/test/controller/mime/respond_to_test.rb
actionpack/test/controller/mime/respond_to_test.rb
+16
-0
未找到文件。
actionpack/lib/action_controller/metal/mime_responds.rb
浏览文件 @
a16fa9ab
...
...
@@ -196,9 +196,10 @@ def clear_respond_to
# Respond to variants in the action just like you respond to formats:
#
# respond_to do |format|
# format.html do |html|
# html.tablet # renders app/views/projects/show.html+tablet.erb
# html.phone { extra_setup; render ... }
# format.html do |variant|
# variant.tablet # renders app/views/projects/show.html+tablet.erb
# variant.phone { extra_setup; render ... }
# variant.none { special_setup } # executed only if there is no variant set
# end
# end
#
...
...
@@ -465,7 +466,7 @@ def initialize(variant)
end
def
method_missing
(
name
)
yield
if
name
==
@variant
yield
if
name
==
@variant
||
(
name
==
:none
&&
@variant
.
nil?
)
end
end
end
...
...
actionpack/test/controller/mime/respond_to_test.rb
浏览文件 @
a16fa9ab
...
...
@@ -166,6 +166,15 @@ def multiple_variants_for_format
end
end
def
variant_plus_none_for_format
respond_to
do
|
format
|
format
.
html
do
|
variant
|
variant
.
phone
{
render
text:
"phone"
}
variant
.
none
{
render
text:
"none"
}
end
end
end
protected
def
set_layout
case
action_name
...
...
@@ -544,4 +553,11 @@ def test_multiple_variants_for_format
assert_equal
"text/html"
,
@response
.
content_type
assert_equal
"tablet"
,
@response
.
body
end
def
test_no_variant_in_variant_setup
get
:variant_plus_none_for_format
assert_equal
"text/html"
,
@response
.
content_type
assert_equal
"none"
,
@response
.
body
end
end
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录