开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜