mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Added :locals support for render :inline #2463 [mdabney@cavoksolutions.com]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2567 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
e646786a76
commit
43b6a74fb1
3 changed files with 16 additions and 3 deletions
|
@ -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]
|
||||
|
|
|
@ -590,7 +590,7 @@ module ActionController #:nodoc:
|
|||
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 @@ module ActionController #:nodoc:
|
|||
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)
|
||||
|
|
|
@ -75,6 +75,11 @@ class TestController < ActionController::Base
|
|||
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 @@ class RenderTest < Test::Unit::TestCase
|
|||
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)
|
||||
|
|
Loading…
Reference in a new issue