diff options
author | José Valim <jose.valim@gmail.com> | 2010-10-07 16:25:13 +0200 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2010-10-07 21:31:31 +0200 |
commit | 8f9e9118e402ea2fe1eec6fcb9a2d3f0c84b3b46 (patch) | |
tree | b094e304f165535828b62d4fb2db3db9cc0e81c0 | |
parent | b2600bfc181664fcfe448d100ca054017b0576dd (diff) | |
download | rails-8f9e9118e402ea2fe1eec6fcb9a2d3f0c84b3b46.tar.gz rails-8f9e9118e402ea2fe1eec6fcb9a2d3f0c84b3b46.tar.bz2 rails-8f9e9118e402ea2fe1eec6fcb9a2d3f0c84b3b46.zip |
Make collection rendering faster.
-rw-r--r-- | actionpack/lib/abstract_controller/rendering.rb | 2 | ||||
-rw-r--r-- | actionpack/lib/action_view/render/partials.rb | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/actionpack/lib/abstract_controller/rendering.rb b/actionpack/lib/abstract_controller/rendering.rb index 5d9b35d297..b4ab3481d5 100644 --- a/actionpack/lib/abstract_controller/rendering.rb +++ b/actionpack/lib/abstract_controller/rendering.rb @@ -50,7 +50,7 @@ module AbstractController if controller.respond_to?(:_helpers) include controller._helpers - if controller.respond_to?(:_routes) + if controller.respond_to?(:_routes) && controller._routes include controller._routes.url_helpers include controller._routes.mounted_helpers end diff --git a/actionpack/lib/action_view/render/partials.rb b/actionpack/lib/action_view/render/partials.rb index 07e844afc2..f7bdbd6917 100644 --- a/actionpack/lib/action_view/render/partials.rb +++ b/actionpack/lib/action_view/render/partials.rb @@ -307,12 +307,12 @@ module ActionView def collection_without_template segments, locals, collection_data = [], @locals, @collection_data - index, template = -1, nil + index, template, cache = -1, nil, {} keys = @locals.keys @collection.each_with_index do |object, i| path, *data = collection_data[i] - template = find_template(path, keys + data) + template = (cache[path] ||= find_template(path, keys + data)) locals[data[0]] = object locals[data[1]] = (index += 1) segments << template.render(@view, locals) |