Skip to content

Instantly share code, notes, and snippets.

@kv109
Last active March 8, 2016 09:27
Show Gist options
  • Save kv109/0988c248832881888644 to your computer and use it in GitHub Desktop.
Save kv109/0988c248832881888644 to your computer and use it in GitHub Desktop.
Rails: rendering collections

I've have ever seen something like this:

Rendered _option.html.erb (1.3ms)
Rendered _option.html.erb (0.9ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (1.2ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.9ms)
Rendered _option.html.erb (1.3ms)
Rendered _option.html.erb (1.0ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.6ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.9ms)
Rendered _option.html.erb (1.1ms)
# Many hidden
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.9ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.9ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.7ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (0.8ms)
Rendered _option.html.erb (1.0ms)
Rendered _option.html.erb (1.1ms)
Rendered _option.html.erb (1.0ms)
Rendered _option_list.html.erb (327.5ms)

then you're doing it wrong. Use :collection option for rendering collections. Instead of

# WRONG WRONG WRONG
<% @options.each do |option| %>
  <%= render partial: 'option', locals: { option: option } %>
<% end %>

do

# GOOD GOOD GOOD
<%= render partial: 'option', collection: @options %>

and you'll get nicer logs with smaller ms numbers:

Rendered _options_summary_cell.html.erb (118.0ms)
Rendered _option_list.html.erb (126.7ms)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment