提交 f01184ad 编写于 作者: S Samuel Lebeau 提交者: José Valim

Avoid potentially expensive inspect call in router. [#4491 state:resolved]

Signed-off-by: NJosé Valim <jose.valim@gmail.com>
上级 e1142dfc
......@@ -392,10 +392,9 @@ def handle_nil_action!
end
def generate
error = ActionController::RoutingError.new("No route matches #{options.inspect}")
path, params = @set.set.generate(:path_info, named_route, options, recall, opts)
raise error unless path
raise_routing_error unless path
params.reject! {|k,v| !v }
......@@ -404,7 +403,7 @@ def generate
path << "?#{params.to_query}" if params.any?
"#{script_name}#{path}"
rescue Rack::Mount::RoutingError
raise error
raise_routing_error
end
def opts
......@@ -421,6 +420,10 @@ def opts
{:parameterize => parameterize}
end
def raise_routing_error
raise ActionController::RoutingError.new("No route matches #{options.inspect}")
end
def different_controller?
return false unless current_controller
controller.to_param != current_controller.to_param
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册