提交 c1f4cb59 编写于 作者: J José Valim

Merge pull request #6144 from bogdan/routes

RouteSet: optimize routes generation when globbing is used
......@@ -202,7 +202,7 @@ def #{selector}(*args)
# Clause check about when we need to generate an optimized helper.
def optimize_helper?(route) #:nodoc:
route.ast.grep(Journey::Nodes::Star).empty? && route.requirements.except(:controller, :action).empty?
route.requirements.except(:controller, :action).empty?
end
# Generates the interpolation to be used in the optimized helper.
......@@ -214,7 +214,10 @@ def optimized_helper(route)
end
route.required_parts.each_with_index do |part, i|
string_route.gsub!(part.inspect, "\#{Journey::Router::Utils.escape_fragment(args[#{i}].to_param)}")
# Replace each route parameter
# e.g. :id for regular parameter or *path for globbing
# with ruby string interpolation code
string_route.gsub!(/(\*|:)#{part}/, "\#{Journey::Router::Utils.escape_fragment(args[#{i}].to_param)}")
end
string_route
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册