Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
b8e83ce1
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,发现更多精彩内容 >>
提交
b8e83ce1
编写于
1月 08, 2015
作者:
R
Rafael Mendonça França
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #18404 from claudiob/rebase-14549
Add test case and documentation for skip_before_filter.
上级
9af5f33a
9a25603d
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
44 addition
and
0 deletion
+44
-0
actionpack/lib/abstract_controller/callbacks.rb
actionpack/lib/abstract_controller/callbacks.rb
+10
-0
actionpack/test/controller/filters_test.rb
actionpack/test/controller/filters_test.rb
+34
-0
未找到文件。
actionpack/lib/abstract_controller/callbacks.rb
浏览文件 @
b8e83ce1
...
...
@@ -28,6 +28,16 @@ module ClassMethods
# The basic idea is that <tt>:only => :index</tt> gets converted to
# <tt>:if => proc {|c| c.action_name == "index" }</tt>.
#
# Note that <tt>:only</tt> has priority over <tt>:if</tt> in case they
# are used together.
#
# only: :index, if: -> { true } # the :if option will be ignored.
#
# Note that <tt>:if</tt> has priority over <tt>:except</tt> in case they
# are used together.
#
# except: :index, if: -> { true } # the :except option will be ignored.
#
# ==== Options
# * <tt>only</tt> - The callback should be run only for this action
# * <tt>except</tt> - The callback should be run for all actions except this action
...
...
actionpack/test/controller/filters_test.rb
浏览文件 @
b8e83ce1
...
...
@@ -225,6 +225,30 @@ class ConditionalOptionsSkipFilter < ConditionalFilterController
skip_before_action
:clean_up_tmp
,
if:
->
{
true
}
end
class
SkipFilterUsingOnlyAndIf
<
ConditionalFilterController
before_action
:clean_up_tmp
before_action
:ensure_login
skip_before_action
:ensure_login
,
only: :login
,
if:
->
{
false
}
skip_before_action
:clean_up_tmp
,
only: :login
,
if:
->
{
true
}
def
login
render
text:
'ok'
end
end
class
SkipFilterUsingIfAndExcept
<
ConditionalFilterController
before_action
:clean_up_tmp
before_action
:ensure_login
skip_before_action
:ensure_login
,
if:
->
{
false
},
except: :login
skip_before_action
:clean_up_tmp
,
if:
->
{
true
},
except: :login
def
login
render
text:
'ok'
end
end
class
ClassController
<
ConditionalFilterController
before_action
ConditionalClassFilter
end
...
...
@@ -596,6 +620,16 @@ def test_running_conditional_skip_options
assert_equal
%w( ensure_login )
,
assigns
[
"ran_filter"
]
end
def
test_if_is_ignored_when_used_with_only
test_process
(
SkipFilterUsingOnlyAndIf
,
'login'
)
assert_nil
assigns
[
'ran_filter'
]
end
def
test_except_is_ignored_when_used_with_if
test_process
(
SkipFilterUsingIfAndExcept
,
'login'
)
assert_equal
%w(ensure_login)
,
assigns
[
"ran_filter"
]
end
def
test_skipping_class_actions
test_process
(
ClassController
)
assert_equal
true
,
assigns
[
"ran_class_action"
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录