Local variable not being passed to partial template by render?
I don't seem to be able to pass a variable to my partial template in rails (2.3.5). My code is as follows;
In the main view .html.erb file:
<% f.fields_for :payments do |payment_form| %>
<%= render 'payment', {:f => payment_form, :t => "test" } %>
<% end %>
and in the _payment.ht开发者_Go百科ml.erb file:
<%= t %>
produces a wrong number of arguments (0 for 1)
error. The payment_form object is being passed to the partial as f without any problems. I've tried a number of variations on the above syntax (e.g. :locals => {:f => payment_form, :t => "test" }
without success. I presume I'm doing something pretty basic wrong but just can't see it.
It's probably because t() is a reserved view helper method used for I18n. Just rename it to something more descriptive
Try
render :partial => 'payment', :locals => {:t => 'test'}
Have you tried
<%= render 'payment', :f => payment_form %>
I'm not sure what the :t is for, but rails is obviously saying that you should only be passing in one extra parameter with the wrong number of arguments (0 for 1) error.
精彩评论