Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
4589b241
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,发现更多精彩内容 >>
提交
4589b241
编写于
10月 31, 2011
作者:
A
Aaron Patterson
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
require that all blocks have arity of 2
上级
3178cc9a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
11 addition
and
6 deletion
+11
-6
actionpack/lib/action_dispatch/routing/redirection.rb
actionpack/lib/action_dispatch/routing/redirection.rb
+10
-5
actionpack/test/dispatch/routing_test.rb
actionpack/test/dispatch/routing_test.rb
+1
-1
未找到文件。
actionpack/lib/action_dispatch/routing/redirection.rb
浏览文件 @
4589b241
...
...
@@ -43,13 +43,19 @@ def redirect(*args, &block)
path
=
args
.
shift
path_proc
=
if
path
.
is_a?
(
String
)
proc
{
|
params
|
(
params
.
empty?
||
!
path
.
match
(
/%\{\w*\}/
))
?
path
:
(
path
%
params
)
}
proc
{
|
params
,
request
|
(
params
.
empty?
||
!
path
.
match
(
/%\{\w*\}/
))
?
path
:
(
path
%
params
)
}
elsif
options
.
any?
options_proc
(
options
)
elsif
path
.
respond_to?
(
:call
)
proc
{
|
params
,
request
|
path
.
call
(
params
,
request
)
}
elsif
block
block
if
block
.
arity
<
2
msg
=
"redirect blocks with arity of
#{
block
.
arity
}
are deprecated. Your block must take 2 parameters: the environment, and a request object"
ActiveSupport
::
Deprecation
.
warn
msg
lambda
{
|
params
,
_
|
block
.
call
(
params
)
}
else
block
end
else
raise
ArgumentError
,
"redirection argument not supported"
end
...
...
@@ -85,8 +91,7 @@ def redirection_proc(status, path_proc)
lambda
do
|
env
|
req
=
Request
.
new
(
env
)
params
=
[
req
.
symbolized_path_parameters
]
params
<<
req
if
path_proc
.
arity
>
1
params
=
[
req
.
symbolized_path_parameters
,
req
]
uri
=
URI
.
parse
(
path_proc
.
call
(
*
params
))
uri
.
scheme
||=
req
.
scheme
...
...
@@ -107,4 +112,4 @@ def redirection_proc(status, path_proc)
end
end
end
\ No newline at end of file
end
actionpack/test/dispatch/routing_test.rb
浏览文件 @
4589b241
...
...
@@ -79,7 +79,7 @@ def self.call(params, request)
match
'sign_in'
=>
"sessions#new"
match
'account/modulo/:name'
,
:to
=>
redirect
(
"/%{name}s"
)
match
'account/proc/:name'
,
:to
=>
redirect
{
|
params
|
"/
#{
params
[
:name
].
pluralize
}
"
}
match
'account/proc/:name'
,
:to
=>
redirect
{
|
params
,
req
|
"/
#{
params
[
:name
].
pluralize
}
"
}
match
'account/proc_req'
=>
redirect
{
|
params
,
req
|
"/
#{
req
.
method
}
"
}
match
'account/google'
=>
redirect
(
'http://www.google.com/'
,
:status
=>
302
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录