diff options
author | José Valim <jose.valim@gmail.com> | 2010-01-22 17:57:36 +0100 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-01-22 17:58:03 +0100 |
commit | d618b7e3dcf2fe6040f025c02bf29691aefc8a71 (patch) | |
tree | dbc1f6b1c6e2f584cd4ef221240998052bf4c7ef /actionpack/lib/abstract_controller | |
parent | cc6f16685ca68900720e5813bd2adca078428f2e (diff) | |
download | rails-d618b7e3dcf2fe6040f025c02bf29691aefc8a71.tar.gz rails-d618b7e3dcf2fe6040f025c02bf29691aefc8a71.tar.bz2 rails-d618b7e3dcf2fe6040f025c02bf29691aefc8a71.zip |
Ensure strings given to render with slash are rendered relative to the configured _prefix.
Diffstat (limited to 'actionpack/lib/abstract_controller')
-rw-r--r-- | actionpack/lib/abstract_controller/rendering.rb | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index 826e82c8c6..a168b1b4c5 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -98,18 +98,9 @@ module AbstractController _view_paths end - # Normalize options, by converting render "foo" to render :template => "foo" - # and render "/foo" to render :file => "/foo". - def _normalize_options(action=nil, options={}) - case action - when Hash - options, action = action, nil - when String - key = (action.index("/") == 0 ? :file : :template) - options.merge!(key => action) - end - - options + # The prefix used in render "foo" shortcuts. + def _prefix + controller_path end # Return a string representation of a Rack-compatible response body. @@ -126,6 +117,28 @@ module AbstractController private + # Normalize options, by converting render "foo" to render :template => "prefix/foo" + # and render "/foo" to render :file => "/foo". + def _normalize_options(action=nil, options={}) + case action + when Hash + options, action = action, nil + when String, Symbol + action = action.to_s + case action.index("/") + when NilClass + options[:_prefix] = _prefix + options[:_template_name] = action + when 0 + options[:file] = action + else + options[:template] = action + end + end + + options + end + # Take in a set of options and determine the template to render # # ==== Options |