Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
rails
提交
0d2001f0
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,发现更多精彩内容 >>
提交
0d2001f0
编写于
5月 02, 2012
作者:
J
José Valim
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6121 from bogdan/routes
ActionPack routes: remove some useless code.
上级
1675c805
02f2e3d5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
4 addition
and
26 deletion
+4
-26
actionpack/lib/action_dispatch/routing/route_set.rb
actionpack/lib/action_dispatch/routing/route_set.rb
+4
-26
未找到文件。
actionpack/lib/action_dispatch/routing/route_set.rb
浏览文件 @
0d2001f0
...
...
@@ -99,12 +99,12 @@ def initialize
@module
=
Module
.
new
do
protected
def
handle_positional_args
(
args
,
options
,
route
)
def
handle_positional_args
(
args
,
options
,
segment_keys
)
inner_options
=
args
.
extract_options!
result
=
options
.
dup
if
args
.
any?
keys
=
route
.
segment_keys
keys
=
segment_keys
if
args
.
size
<
keys
.
size
-
1
# take format into account
keys
-=
self
.
url_options
.
keys
if
self
.
respond_to?
(
:url_options
)
keys
-=
options
.
keys
...
...
@@ -161,34 +161,13 @@ def url_helper_name(name, only_path)
end
end
def
hash_access_name
(
name
,
only_path
)
if
only_path
:"hash_for_
#{
name
}
_path"
else
:"hash_for_
#{
name
}
_url"
end
end
def
define_named_route_methods
(
name
,
route
)
[
true
,
false
].
each
do
|
only_path
|
hash
=
route
.
defaults
.
merge
(
:use_route
=>
name
,
:only_path
=>
only_path
)
define_hash_access
route
,
name
,
hash
define_url_helper
route
,
name
,
hash
end
end
def
define_hash_access
(
route
,
name
,
options
)
selector
=
hash_access_name
(
name
,
options
[
:only_path
])
@module
.
module_eval
do
redefine_method
(
selector
)
do
|*
args
|
self
.
handle_positional_args
(
args
,
options
,
route
)
end
protected
selector
end
helpers
<<
selector
end
# Create a url helper allowing ordered parameters to be associated
# with corresponding dynamic segments, so you can do:
#
...
...
@@ -204,7 +183,6 @@ def define_hash_access(route, name, options)
#
def
define_url_helper
(
route
,
name
,
options
)
selector
=
url_helper_name
(
name
,
options
[
:only_path
])
hash_access_method
=
hash_access_name
(
name
,
options
[
:only_path
])
if
optimize_helper?
(
route
)
@module
.
module_eval
<<-
END_EVAL
,
__FILE__
,
__LINE__
+
1
...
...
@@ -215,7 +193,7 @@ def #{selector}(*args)
options[:path] = "
#{
optimized_helper
(
route
)
}
"
ActionDispatch::Http::URL.url_for(options)
else
url_for(
#{
hash_access_method
}
(*args
))
url_for(
handle_positional_args(args,
#{
options
.
inspect
}
,
#{
route
.
segment_keys
.
inspect
}
))
end
end
END_EVAL
...
...
@@ -223,7 +201,7 @@ def #{selector}(*args)
@module
.
module_eval
<<-
END_EVAL
,
__FILE__
,
__LINE__
+
1
remove_possible_method :
#{
selector
}
def
#{
selector
}
(*args)
url_for(
#{
hash_access_method
}
(*args
))
url_for(
handle_positional_args(args,
#{
options
.
inspect
}
,
#{
route
.
segment_keys
.
inspect
}
))
end
END_EVAL
end
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录