提交 c03c40b4 编写于 作者: J José Valim 提交者: Yehuda Katz

Expose a _render_partial hook as thhe _render_template one and make use of it.

上级 33c98b15
......@@ -254,6 +254,7 @@ class Base < AbstractController::Base
include Quoting
extend AdvAttrAccessor
include AbstractController::Logger
include AbstractController::Rendering
include AbstractController::LocalizedCache
include AbstractController::Layouts
......
require "abstract_controller/base"
require "abstract_controller/logger"
module AbstractController
class DoubleRenderError < Error
......@@ -13,8 +12,6 @@ def initialize(message = nil)
module Rendering
extend ActiveSupport::Concern
include AbstractController::Logger
included do
extlib_inheritable_accessor :_view_paths
self._view_paths ||= ActionView::PathSet.new
......@@ -67,7 +64,7 @@ def render(*args)
def render_to_body(options = {})
# TODO: Refactor so we can just use the normal template logic for this
if options.key?(:partial)
view_context.render_partial(options)
_render_partial(options)
else
_determine_template(options)
_render_template(options)
......@@ -87,11 +84,18 @@ def render_to_string(options = {})
# ==== Options
# _template<ActionView::Template>:: The template to render
# _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)
end
# Renders the given partial.
#
# ==== Options
# partial<String|Object>:: The partial name or the object to be rendered
def _render_partial(options)
view_context.render_partial(options)
end
# The list of view paths for this controller. See ActionView::ViewPathSet for
# more details about writing custom view paths.
def view_paths
......
......@@ -20,12 +20,6 @@ def render(options)
def render_to_body(options)
_process_options(options)
if options.key?(:partial)
options[:partial] = action_name if options[:partial] == true
options[:_details] = {:formats => formats}
end
super
end
......@@ -43,6 +37,12 @@ def _determine_template(options)
super
end
def _render_partial(options)
options[:partial] = action_name if options[:partial] == true
options[:_details] = {:formats => formats}
super
end
def format_for_text
formats.first
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册