Rails: os parciais devem estar cientes das variáveis da instância?

Os nifty_scaffolding de Ryan Bates, por exemplo, fazem isso

edit.html.erb

<%= render :partial => 'form' %>

new.html.erb

<%= render :partial => 'form' %>

_form.html.erb

<%= form_for @some_object_defined_in_action %>

Esse estado oculto me deixa desconfortável, então geralmente gosto de fazer isso

edit.html.erb

<%= render :partial => 'form', :locals => { :object => @my_object } %>

_form.html.erb

<%= form_for object %>

Então, o que é melhor:a) ter parciais acessar variáveis de instância oub) passando parcial todas as variáveis necessárias?

Eu tenho optado por b) ultimamente, mas me deparei com um pouco de picles:

some_action.html.erb

<% @dad.sons.each do |a_son| %>
<%= render :partial => 'partial', :locals => { :son => a_son } %>
<% end %>

_partial.html.erb

The son's name is <%= son.name %>
The dad's name is <%= son.dad.name %>

O son.dad faz uma chamada no banco de dados para buscar o pai! Então, eu teria que acessar o @dad, que voltaria aa) ter parciais acessar variáveis de instância ou eu teria que passar @ pai em locais, alterando render: parcial para <% = render: parcial => 'parcial',: locais => {: dad => @ pai,: filho => a_son}%> e por alguma razão, passar um monte de vars para o meu parcial me deixa desconfortável. Talvez outros se sintam assim também.

Espero que isso faça algum sentido. Procurando algumas dicas sobre tudo isso ... Obrigado!

questionAnswers(4)

yourAnswerToTheQuestion