mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Optimize the code added in fa99de0bd0
This commit is contained in:
parent
c5537c1158
commit
f055bc05d5
1 changed files with 19 additions and 9 deletions
|
@ -241,16 +241,21 @@ module ActionView
|
||||||
end
|
end
|
||||||
|
|
||||||
def collection_with_template(template = @template)
|
def collection_with_template(template = @template)
|
||||||
segments, locals, as, template = [], @locals, @options[:as] || @template.variable_name, @template
|
segments, locals, template = [], @locals, @template
|
||||||
|
|
||||||
counter_name = template.counter_name
|
if @options[:as]
|
||||||
locals[counter_name] = -1
|
as = @options[:as]
|
||||||
|
counter = "#{as}_counter".to_sym
|
||||||
|
else
|
||||||
|
as = template.variable_name
|
||||||
|
counter = template.counter_name
|
||||||
|
end
|
||||||
|
|
||||||
|
locals[counter] = -1
|
||||||
|
|
||||||
@collection.each do |object|
|
@collection.each do |object|
|
||||||
locals[counter_name] += 1
|
locals[counter] += 1
|
||||||
locals["#{as.to_s}_counter".to_sym] = locals[counter_name] if as
|
|
||||||
locals[as] = object
|
locals[as] = object
|
||||||
|
|
||||||
segments << template.render(@view, locals)
|
segments << template.render(@view, locals)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -258,13 +263,18 @@ module ActionView
|
||||||
end
|
end
|
||||||
|
|
||||||
def collection_without_template(collection_paths = @collection_paths)
|
def collection_without_template(collection_paths = @collection_paths)
|
||||||
segments, locals, as = [], @locals, @options[:as]
|
segments, locals = [], @locals
|
||||||
index, template = -1, nil
|
index, template = -1, nil
|
||||||
|
|
||||||
|
if @options[:as]
|
||||||
|
as = @options[:as]
|
||||||
|
counter = "#{as}_counter"
|
||||||
|
end
|
||||||
|
|
||||||
@collection.each_with_index do |object, i|
|
@collection.each_with_index do |object, i|
|
||||||
template = find_template(collection_paths[i])
|
template = find_template(collection_paths[i])
|
||||||
locals[template.counter_name] = (index += 1)
|
|
||||||
locals[as || template.variable_name] = object
|
locals[as || template.variable_name] = object
|
||||||
|
locals[counter || template.counter_name] = (index += 1)
|
||||||
|
|
||||||
segments << template.render(@view, locals)
|
segments << template.render(@view, locals)
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue