我有一个nested_form,其中嵌套元素在表单中动态添加和删除,使用Javascript。
我已经为new
动作准备了这整个部分-元素添加和销毁,并且所有内容都按原样保存。
访问edit
操作时,我得到了正确的父元素,但子元素不显示 -相反,edit
视图用挥之不去的(无益的)戏弄我。"添加选项"按钮。
我可能在哪里出错了?
试试gem cocoon,它真的很方便,可以为你照顾嵌套的javascript表单!!
链接http://www.dixis.com/?p=454〈nl
我遇到了完全相同的问题,并发现这取决于创建嵌套元素的"fields_for"块。例如,我有:
<%= nested_form_for(@recipe) do |f| %>
# Stuff for parent...
<% f.fields_for :recipe_ingredients do |ingredient_form| %>
# Stuff for nested form...
<% end %>
# etc.
这一行需要是<%=
块,而不是上面的<%
块,即
<%= nested_form_for(@recipe) do |f| %>
# Stuff for parent...
# The following line has changed
<%= f.fields_for :recipe_ingredients do |ingredient_form| %>
# Stuff for nested form...
<% end %>
# etc.
这就是在编辑表单上打印现有嵌套属性所需的全部内容。
我有完全相同的问题(我严重掉了一些头发)。我很高兴地发现这个问题,其他人似乎都没有。我的解决方案是"微不足道的":我在Windows Box上从Rails 3.0.0升级到3.0.6(3.0.7带来了另一个问题)。
我没有进一步调查,因为它现在工作。我没有修改任何一行代码。也许这对你来说也是一个有效的修复。
请告诉我……
问候,德克
检查您的表单以编辑资源。
尝试在父窗体中使用实例变量,如下所示:
<%= form_for @parent_resource do |form| %>
... some field ...
<%= form.fields_for :children_resources do |f| %>
...
<% end %>