Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Added :locals support for render :inline #2463 [mdabney@cavoksolution…

…s.com]

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2567 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit 43b6a74fb188e41ae686c2d948e876c1f84e7bdf 1 parent e646786
@dhh dhh authored
View
2  actionpack/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*
+* Added :locals support for render :inline #2463 [mdabney@cavoksolutions.com]
+
* Unset the X-Requested-With header when using the xhr wrapper in functional tests so that future requests aren't accidentally xhr'ed #2352 [me@julik.nl, Sam Stephenson]
* Unescape paths before writing cache to file system. #1877. [Damien Pollet]
View
6 actionpack/lib/action_controller/base.rb
@@ -590,7 +590,7 @@ def render(options = nil, deprecated_status = nil) #:doc:
render_file(template, options[:status], true)
elsif inline = options[:inline]
- render_template(inline, options[:status], options[:type])
+ render_template(inline, options[:status], options[:type], options[:locals] || {})
elsif action_name = options[:action]
render_action(action_name, options[:status], options[:layout])
@@ -637,9 +637,9 @@ def render_file(template_path, status = nil, use_full_path = false)
render_text(@template.render_file(template_path, use_full_path), status)
end
- def render_template(template, status = nil, type = :rhtml)
+ def render_template(template, status = nil, type = :rhtml, local_assigns = {})
add_variables_to_assigns
- render_text(@template.render_template(type, template), status)
+ render_text(@template.render_template(type, template, nil, local_assigns), status)
end
def render_text(text = nil, status = nil)
View
11 actionpack/test/controller/render_test.rb
@@ -75,6 +75,11 @@ def accessing_params_in_template
render_template "Hello: <%= params[:name] %>"
end
+ def accessing_local_assigns_in_inline_template
+ name = params[:local_name]
+ render :inline => "<%= 'Goodbye, ' + local_name %>", :locals => { :local_name => name }
+ end
+
def rescue_action(e) raise end
private
@@ -206,6 +211,12 @@ def test_accessing_params_in_template
assert_equal "Hello: David", process_request.body
end
+ def test_accessing_local_assigns_in_inline_template
+ @request.action = "accessing_local_assigns_in_inline_template"
+ @request.query_parameters[:local_name] = "Local David"
+ assert_equal "Goodbye, Local David", process_request.body
+ end
+
private
def process_request
TestController.process(@request, @response)
Please sign in to comment.
Something went wrong with that request. Please try again.