Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
2297eaed
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,发现更多精彩内容 >>
提交
2297eaed
编写于
12月 11, 2009
作者:
J
Joshua Peek
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
"new" and "edit" name routes always need to be prepend to the
named_route [#3561 state:resolved]
上级
61e9f202
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
37 addition
and
6 deletion
+37
-6
actionpack/lib/action_dispatch/routing/mapper.rb
actionpack/lib/action_dispatch/routing/mapper.rb
+23
-6
actionpack/test/dispatch/routing_test.rb
actionpack/test/dispatch/routing_test.rb
+14
-0
未找到文件。
actionpack/lib/action_dispatch/routing/mapper.rb
浏览文件 @
2297eaed
...
@@ -338,7 +338,9 @@ def resources(*resources, &block)
...
@@ -338,7 +338,9 @@ def resources(*resources, &block)
with_scope_level
(
:collection
)
do
with_scope_level
(
:collection
)
do
get
"(.:format)"
,
:to
=>
:index
,
:as
=>
resource
.
collection_name
get
"(.:format)"
,
:to
=>
:index
,
:as
=>
resource
.
collection_name
post
"(.:format)"
,
:to
=>
:create
post
"(.:format)"
,
:to
=>
:create
get
"/new(.:format)"
,
:to
=>
:new
,
:as
=>
"new_
#{
resource
.
singular
}
"
with_exclusive_name_prefix
:new
do
get
"/new(.:format)"
,
:to
=>
:new
,
:as
=>
resource
.
singular
end
end
end
with_scope_level
(
:member
)
do
with_scope_level
(
:member
)
do
...
@@ -346,7 +348,9 @@ def resources(*resources, &block)
...
@@ -346,7 +348,9 @@ def resources(*resources, &block)
get
"(.:format)"
,
:to
=>
:show
,
:as
=>
resource
.
member_name
get
"(.:format)"
,
:to
=>
:show
,
:as
=>
resource
.
member_name
put
"(.:format)"
,
:to
=>
:update
put
"(.:format)"
,
:to
=>
:update
delete
"(.:format)"
,
:to
=>
:destroy
delete
"(.:format)"
,
:to
=>
:destroy
get
"/edit(.:format)"
,
:to
=>
:edit
,
:as
=>
"edit_
#{
resource
.
singular
}
"
with_exclusive_name_prefix
:edit
do
get
"/edit(.:format)"
,
:to
=>
:edit
,
:as
=>
resource
.
singular
end
end
end
end
end
end
end
...
@@ -400,11 +404,8 @@ def match(*args)
...
@@ -400,11 +404,8 @@ def match(*args)
end
end
if
args
.
first
.
is_a?
(
Symbol
)
if
args
.
first
.
is_a?
(
Symbol
)
begin
with_exclusive_name_prefix
(
args
.
first
)
do
old_name_prefix
,
@scope
[
:name_prefix
]
=
@scope
[
:name_prefix
],
"
#{
args
.
first
}
_
#{
@scope
[
:name_prefix
]
}
"
return
match
(
"/
#{
args
.
first
}
(.:format)"
,
options
.
merge
(
:to
=>
args
.
first
.
to_sym
))
return
match
(
"/
#{
args
.
first
}
(.:format)"
,
options
.
merge
(
:to
=>
args
.
first
.
to_sym
))
ensure
@scope
[
:name_prefix
]
=
old_name_prefix
end
end
end
end
...
@@ -430,6 +431,22 @@ def parent_resource
...
@@ -430,6 +431,22 @@ def parent_resource
end
end
private
private
def
with_exclusive_name_prefix
(
prefix
)
begin
old_name_prefix
=
@scope
[
:name_prefix
]
if
!
old_name_prefix
.
blank?
@scope
[
:name_prefix
]
=
"
#{
prefix
}
_
#{
@scope
[
:name_prefix
]
}
"
else
@scope
[
:name_prefix
]
=
prefix
.
to_s
end
yield
ensure
@scope
[
:name_prefix
]
=
old_name_prefix
end
end
def
with_scope_level
(
kind
,
resource
=
parent_resource
)
def
with_scope_level
(
kind
,
resource
=
parent_resource
)
old
,
@scope
[
:scope_level
]
=
@scope
[
:scope_level
],
kind
old
,
@scope
[
:scope_level
]
=
@scope
[
:scope_level
],
kind
old_resource
,
@scope
[
:scope_level_resource
]
=
@scope
[
:scope_level_resource
],
resource
old_resource
,
@scope
[
:scope_level_resource
]
=
@scope
[
:scope_level_resource
],
resource
...
...
actionpack/test/dispatch/routing_test.rb
浏览文件 @
2297eaed
...
@@ -228,9 +228,23 @@ def test_projects_involvements
...
@@ -228,9 +228,23 @@ def test_projects_involvements
assert_equal
'involvements#index'
,
@response
.
body
assert_equal
'involvements#index'
,
@response
.
body
assert_equal
'/projects/1/involvements'
,
project_involvements_path
(
:project_id
=>
'1'
)
assert_equal
'/projects/1/involvements'
,
project_involvements_path
(
:project_id
=>
'1'
)
get
'/projects/1/involvements/new'
assert_equal
'involvements#new'
,
@response
.
body
assert_equal
'/projects/1/involvements/new'
,
new_project_involvement_path
(
:project_id
=>
'1'
)
get
'/projects/1/involvements/1'
get
'/projects/1/involvements/1'
assert_equal
'involvements#show'
,
@response
.
body
assert_equal
'involvements#show'
,
@response
.
body
assert_equal
'/projects/1/involvements/1'
,
project_involvement_path
(
:project_id
=>
'1'
,
:id
=>
'1'
)
assert_equal
'/projects/1/involvements/1'
,
project_involvement_path
(
:project_id
=>
'1'
,
:id
=>
'1'
)
put
'/projects/1/involvements/1'
assert_equal
'involvements#update'
,
@response
.
body
delete
'/projects/1/involvements/1'
assert_equal
'involvements#destroy'
,
@response
.
body
get
'/projects/1/involvements/1/edit'
assert_equal
'involvements#edit'
,
@response
.
body
assert_equal
'/projects/1/involvements/1/edit'
,
edit_project_involvement_path
(
:project_id
=>
'1'
,
:id
=>
'1'
)
end
end
end
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录