提交 8534c5bf 编写于 作者: Y Yehuda Katz

Start cleaning up partial path

上级 9b506484
......@@ -54,7 +54,7 @@ def render(*args)
# :api: plugin
def render_to_body(options = {})
# TODO: Refactor so we can just use the normal template logic for this
if options[:_partial_object]
if options.key?(:_partial_object)
view_context.render_partial(options)
else
_determine_template(options)
......@@ -77,7 +77,7 @@ def render_to_string(options = {})
# _layout<ActionView::Template>:: The layout to wrap the template in (optional)
# _partial<TrueClass, FalseClass>:: Whether or not the template to be rendered is a partial
def _render_template(options)
view_context.render_template(options[:_template], options[:_layout], options, options[:_partial])
view_context.render_template(options)
end
# The list of view paths for this controller. See ActionView::ViewPathSet for
......
......@@ -57,7 +57,7 @@ def _render_partial(partial, options)
when true
options[:_prefix] = _prefix
when String
options[:_prefix] = _prefix unless partial.index('/')
options[:_prefix] = _prefix unless partial.include?(?/)
options[:_template_name] = partial
else
options[:_partial_object] = true
......
......@@ -183,12 +183,12 @@ def _partial_names
end
end
def render_partial(*args)
def render_partial(options)
@assigns_added = false
_render_partial(*args)
_render_partial(options)
end
def _render_partial(options = {}) #:nodoc:
def _render_partial(options) #:nodoc:
options[:locals] ||= {}
path = partial = options[:partial]
......@@ -244,7 +244,9 @@ def _array_like_objects
array_like
end
def _render_partial_object(template, options, object = nil)
def _render_partial_object(template, options)
object = options[:object]
if options.key?(:collection)
_render_partial_collection(options.delete(:collection), options, template)
else
......
......@@ -123,19 +123,25 @@ def _render_text(text, layout, options)
layout ? _render_content_with_layout(text, layout, options[:locals]) : text
end
def render_template(*args)
# This is the API to render a ViewContext's template from a controller.
#
# Internal Options:
# _template:: The Template object to render
# _layout:: The layout, if any, to wrap the Template in
# _partial:: true if the template is a partial
def render_template(options)
@assigns_added = nil
_render_template_with_layout(*args)
template, layout, partial = options.values_at(:_template, :_layout, :_partial)
_render_template_with_layout(template, layout, options, partial)
end
def _render_template_with_layout(template, layout = nil, options = {}, partial = false)
def _render_template_with_layout(template, layout = nil, options = {}, partial = nil)
logger && logger.info("Rendering #{template.identifier}#{' (#{options[:status]})' if options[:status]}")
locals = options[:locals] || {}
content = if partial
object = partial unless partial == true
_render_partial_object(template, options, object)
_render_partial_object(template, options)
else
_render_template(template, locals)
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册