【发布时间】:2011-05-14 00:49:15
【问题描述】:
全部,
我在使用标准 fields_for 设置时遇到问题。在我的“_form”部分中,我有:
<div class="comment_list">
<%= f.fields_for :comments do |cf| %>
<%= render :partial => 'comments/comment_fields', :locals => {:f => cf, :tester => true} %>
<% end %>
<%= link_to_add_fields "Add a comment", f, :comments %>
</div>
在“_comment_fields”部分,我有常用字段,然后是我的测试变量:
<%= tester.to_s %>
当我删除 tester 变量时,一切正常。一旦我添加了测试变量,我就会得到这个错误:
ActionView::Template::Error(#Class:0xa1f3664>:0xa1f1bd4> 的未定义局部变量或方法 `tester')
有没有其他人在将 fields_for 与多个本地人一起使用时遇到过这个问题?
更详细地说,我的“_comment_fields”部分如下所示:
<div class="comment dynamic_field">
<span class="comment_content"><%= f.text_field :content, :class => "comment_content" %></span>
<%= tester.to_s %>
<%= link_to_remove_fields "remove", f %>
</div>
仅从“_form”部分调用。
【问题讨论】:
-
你确定你没有在多个地方渲染comment_fields吗?如果是,可以粘贴comment_fields吗?
-
不幸的是,我只是从 _form 部分渲染comment_fields。仅当我尝试传递多个局部变量时才会出现此问题。
-
hakunin - 你是对的。我实际上是从两个地方调用它。第二个位置是在我使用 javascript 动态添加字段的一些方法中。
标签: ruby-on-rails ruby-on-rails-3 partial locals