aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal/renderer.rb
diff options
context:
space:
mode:
authorYehuda Katz <wycats@gmail.com>2009-08-07 11:33:54 -0300
committerYehuda Katz <wycats@gmail.com>2009-08-07 11:33:54 -0300
commitbfe58ac05d4b7ba5d5c04c3aa9a719e340b2111e (patch)
treeb0551d64290678ecf8d0ab02a8b7b89607ccfa14 /actionpack/lib/action_controller/metal/renderer.rb
parent606e950ccbd02a10f724c73543575a2a4e1ed8cb (diff)
downloadrails-bfe58ac05d4b7ba5d5c04c3aa9a719e340b2111e.tar.gz
rails-bfe58ac05d4b7ba5d5c04c3aa9a719e340b2111e.tar.bz2
rails-bfe58ac05d4b7ba5d5c04c3aa9a719e340b2111e.zip
Get all ActionController partial rendering to use ActionView's partial code. Consequences:
* It is not possible to always pre-determine the layout before going to ActionView. This was *already* broken for render :partial => @object, :layout => true. This is now handled by overriding render_to_body in layouts.rb and manually injecting the partial's response. This needs to be done in ActionController since ActionController knows enough to get _layout_for_option. There is probably a better abstraction here. * As a result, all partial rendering can correctly restrict their layouts to the mime type of the rendered partial. This could have previously caused a bug in some edge cases. * If other layout-like options are added, they might need to add special code for the case of render :partial. We should try to think of an alternate solution, if possible, but this works for the cases we know of now.
Diffstat (limited to 'actionpack/lib/action_controller/metal/renderer.rb')
-rw-r--r--actionpack/lib/action_controller/metal/renderer.rb15
1 files changed, 2 insertions, 13 deletions
diff --git a/actionpack/lib/action_controller/metal/renderer.rb b/actionpack/lib/action_controller/metal/renderer.rb
index 5a458764ad..31ba7e582a 100644
--- a/actionpack/lib/action_controller/metal/renderer.rb
+++ b/actionpack/lib/action_controller/metal/renderer.rb
@@ -22,7 +22,8 @@ module ActionController
_process_options(options)
if options.key?(:partial)
- _render_partial(options[:partial], options)
+ options[:partial] = action_name if options[:partial] == true
+ options[:_details] = {:formats => formats}
end
super
@@ -53,18 +54,6 @@ module ActionController
end
def _render_partial(partial, options)
- case partial
- when true
- options[:_prefix] = _prefix
- when String
- options[:_prefix] = _prefix unless partial.include?(?/)
- options[:_template_name] = partial
- else
- options[:_partial_object] = true
- return
- end
-
- options[:_partial] = options[:object] || true
end
def _process_options(options)