As I recalled (just tried this all again) the following all errored out:
<%= render partial: 'edit', collection: @slides %>
(missing partial error, it tries to find it in views/lightboxes)
<%= render partial: 'slides/edit', collection: @slides %>
undefined local variable or method `slide' for #<#<Class:0x000000055d8f68>:0x000000055e5f88>
app/views/slides/_edit.html.erb:1:in `_app_views_slides__edit_html_erb__384904886497801069_46013340’
So it seems that `render @collection` has more magic than its long-form `render partial: ‘partial’, collection: @collection` form.
More confused googling ensues...
And for those who may come later (future me, among them) here’s the answer, in the last answer on this SO post:
http://stackoverflow.com/questions/13872003/rails-render-partial-with-collection
Inside my _edit partial, I get passed not a ‘collection_name_singularlized’, as I was expecting, but rather the **name of the partial** as the magic instance variable. Substituting `edit` for `slide` inside the partial as my instance variable name fixed this. No more three lines where one will do.
But I don’t know how I feel about this convention. The render collection behavior is to unroll the collection and pass each member as an instance variable into the partial, so I would really expect these instances to be collection_model_name rather than partial_file_name_without_the_underscore_prefix. It just seems more object-oriented to rely on the object, rather than the local file implementation, for your naming.