提交 ede50559 编写于 作者: J Jeremy Kemper

Avoid logging code if logger is nil. Closes #2881.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3056 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 eb1dd6a2
*SVN* *SVN*
* Use Set instead of Array to speed up prototype helper include? calls. #2880 [Stefan Kaes] * Performance tweaks: use Set instead of Array to speed up prototype helper include? calls. Avoid logging code if logger is nil. #2880, #2881 [Stefan Kaes]
* MemCache store may be given multiple addresses. #2869 [Ryan Carver <ryan@fivesevensix.com>] * MemCache store may be given multiple addresses. #2869 [Ryan Carver <ryan@fivesevensix.com>]
......
...@@ -54,9 +54,13 @@ def render_partial(partial_path, local_assigns = nil, deprecated_local_assigns = ...@@ -54,9 +54,13 @@ def render_partial(partial_path, local_assigns = nil, deprecated_local_assigns =
add_counter_to_local_assigns!(partial_name, local_assigns) add_counter_to_local_assigns!(partial_name, local_assigns)
add_object_to_local_assigns!(partial_name, local_assigns, object) add_object_to_local_assigns!(partial_name, local_assigns, object)
if logger
ActionController::Base.benchmark("Rendered #{path}/_#{partial_name}", Logger::DEBUG, false) do ActionController::Base.benchmark("Rendered #{path}/_#{partial_name}", Logger::DEBUG, false) do
render("#{path}/_#{partial_name}", local_assigns) render("#{path}/_#{partial_name}", local_assigns)
end end
else
render("#{path}/_#{partial_name}", local_assigns)
end
end end
# Deprecated, use render :partial, :collection # Deprecated, use render :partial, :collection
...@@ -113,8 +117,15 @@ def add_counter_to_local_assigns!(partial_name, local_assigns) ...@@ -113,8 +117,15 @@ def add_counter_to_local_assigns!(partial_name, local_assigns)
end end
def add_object_to_local_assigns!(partial_name, local_assigns, object) def add_object_to_local_assigns!(partial_name, local_assigns, object)
local_assigns[partial_name.intern] ||= object.is_a?(ActionView::Base::ObjectWrapper) ? object.value : object local_assigns[partial_name.intern] ||= unwrap_object(object) || controller.instance_variable_get("@#{partial_name}")
local_assigns[partial_name.intern] ||= controller.instance_variable_get("@#{partial_name}") end
def unwrap_object(object)
if object.is_a?(ActionView::Base::ObjectWrapper)
object.value
else
object
end
end end
end end
end end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册