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

发布于 2024-08-29 09:45:41 字数 516 浏览 6 评论 0原文

我似乎无法将变量传递给 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 %>

产生参数数量错误(0 代表 1) 错误。 payment_form 对象作为 f 传递给部分,没有任何问题。我尝试了上述语法的多种变体(例如 :locals => {:f => payment_form, :t => "test" } 但没有成功。我想我'我做了一些非常基本的错误,但只是看不到它。

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.html.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.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

画尸师 2024-09-05 09:45:41

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

It's probably because t() is a reserved view helper method used for I18n. Just rename it to something more descriptive

弥枳 2024-09-05 09:45:41

尝试

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

Try

render :partial => 'payment', :locals => {:t => 'test'}
樱娆 2024-09-05 09:45:41

你尝试过吗
<%= 渲染“付款”, :f => payment_form %>

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

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文