:locals vs. instance variable in partials ... best practice?

I've been vacillating between using the :locals hash and instance variables when passing data to partials. Is there a valid reason to use one over the other? What could be considered a best practice in the Rails community? I did some googling but didn't turn anything up.

Peace.

As a general rule of thumb, you'll want to be conservative when it comes to scoping your variables. In my opinion, it's best to use locals and not rely on an instance variable.

Cheers,

Robby

In a similar vein...

I've always wondered if there's a performance (or other) difference between using an iterating partial (e.g. with :collection =>) vs. an explicit iterator.

For example: <%= render :partial => 'item', :collection => @items %>

vs. <% @items.each do |i| %> <%= h i.name %> <% end %>

(I suppose there's also the case of writing an explicit iteration but using a partial inside the iteration)

I assume (but haven't tested) that the latter case is more performant; but using the iterating partial feels more 'rails-ish' to me...

dwh