Я запутался с передачей переменной экземпляра контроллера в частичный шаблон (названный в честь этой переменной экземпляра).
Документация от http://api.rubyonrails.org/classes/ActionView/Partials.html говорит:
По умолчанию PartialRenderer использует имя шаблона для локального имени объекта, переданного в шаблон.Эти примеры фактически одинаковы:
<%= render :partial => "contract", :locals => { :contract => @contract } %>
<%= render :partial => "contract" %>
Но в моем случае я не могу получить ту же магию.
ProductsController # show :
@foo = "123456789"
show.html.erb в следующей редакции работает (контроллер @ foo отображается как локальная переменная foo в _foo.html.erb ):
<%= render :partial => 'foo', :locals => { :foo => @foo } %>
Но следующий код не передает переменную @foo контроллера в _foo.html.erb частично:
<%= render :partial => 'foo' %>
Почему так?