mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Accept String value for render_partial :as option
[#6222 state:committed] Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
This commit is contained in:
parent
6bd9fac1e3
commit
5dd803e9b1
3 changed files with 9 additions and 4 deletions
|
@ -40,7 +40,7 @@ module ActionView
|
|||
# With the <tt>:as</tt> option we can specify a different name for said local variable. For example, if we
|
||||
# wanted it to be +agreement+ instead of +contract+ we'd do:
|
||||
#
|
||||
# <%= render :partial => "contract", :as => :agreement %>
|
||||
# <%= render :partial => "contract", :as => 'agreement' %>
|
||||
#
|
||||
# The <tt>:object</tt> option can be used to directly specify which object is rendered into the partial;
|
||||
# useful when the template's object is elsewhere, in a different ivar or in a local variable for instance.
|
||||
|
|
|
@ -108,7 +108,7 @@ module ActionView
|
|||
locals << @variable_counter if @collection
|
||||
find_template(path, locals)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def find_template(path=@path, locals=@locals.keys)
|
||||
prefixes = path.include?(?/) ? [] : @view.controller_prefixes
|
||||
|
@ -159,7 +159,7 @@ module ActionView
|
|||
end
|
||||
|
||||
def retrieve_variable(path)
|
||||
variable = @options[:as] || path[%r'_?(\w+)(\.\w+)*$', 1].to_sym
|
||||
variable = @options[:as].try(:to_sym) || path[%r'_?(\w+)(\.\w+)*$', 1].to_sym
|
||||
variable_counter = :"#{variable}_counter" if @collection
|
||||
[variable, variable_counter]
|
||||
end
|
||||
|
|
|
@ -146,7 +146,12 @@ module RenderTestCases
|
|||
assert_equal "Hello: davidHello: mary", @view.render(:partial => "test/customer", :collection => [ Customer.new("david"), Customer.new("mary") ])
|
||||
end
|
||||
|
||||
def test_render_partial_collection_as
|
||||
def test_render_partial_collection_as_by_string
|
||||
assert_equal "david david davidmary mary mary",
|
||||
@view.render(:partial => "test/customer_with_var", :collection => [ Customer.new("david"), Customer.new("mary") ], :as => 'customer')
|
||||
end
|
||||
|
||||
def test_render_partial_collection_as_by_symbol
|
||||
assert_equal "david david davidmary mary mary",
|
||||
@view.render(:partial => "test/customer_with_var", :collection => [ Customer.new("david"), Customer.new("mary") ], :as => :customer)
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue