局部变量没有通过渲染传递给部分模板?

时间:2010-04-17 14:08:17

标签: ruby-on-rails render partial-views

我似乎无法将变量传递给rails(2.3.5)中的部分模板。我的代码如下;

在主视图.html.erb文件中:

<% f.fields_for :payments do |payment_form| %>
    <%= render 'payment', {:f => payment_form, :t => "test" } %>
<% end %>

并在_payment.html.erb文件中:

<%= t %>

产生wrong number of arguments (0 for 1)错误。 payment_form对象作为f传递给partial而没有任何问题。我已经尝试了上述语法的一些变体(例如:locals => {:f => payment_form, :t => "test" }但没有成功。我认为我做了一些非常基本的错误但却看不到它。

3 个答案:

答案 0 :(得分:2)

这可能是因为t()是用于I18n的保留视图辅助方法。只需将其重命名为更具描述性的内容

答案 1 :(得分:1)

尝试

render :partial => 'payment', :locals => {:t => 'test'}

答案 2 :(得分:1)

你试过吗? <%= render 'payment', :f => payment_form %>

我不确定:t是什么用,但是rails显然说你应该只传递一个带有错误数量的参数(0表示1)错误的额外参数。