: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.

On Tue, Sep 30, 2008 at 7:54 AM, Phillip K.
[email protected] wrote:

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.

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


Robby R.
Chief Evangelist, Partner

PLANET ARGON, LLC
design // development // hosting

http://www.robbyonrails.com/
aim: planetargon

+1 503 445 2457
+1 877 55 ARGON [toll free]
+1 815 642 4068 [fax]

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