Rails 4&cocoon gem:无法添加3级孩子动态添加2级孩子
我目前正在使用cocoon gem来处理我的嵌套表单以及bootstrap / simple_form。 我的模型布局如下:
- 联系
has_many
目标 - 目标有很多任务
- 一个任务
has_one
提醒(尚未实现,一旦我解决了这个问题,这是下一个)
我的表单布局正确构建了目标字段,我可以毫无问题地添加/删除任务到我的第一个目标。 但是,当我动态添加另一个目标时(无论是在新的还是编辑操作中),我都无法向其添加/删除任务(如果我点击“添加任务”,它只会添加到我的第一个目标中)。 以下是我的表格:
_form.html.erb
prohibited this contact from being saved:
Goals:
goal %> {:wrapper => 'bootstrap' } %>
_goal_fields.html.erb
Tasks:
task %> {:wrapper => 'bootstrap' } %>
task_fields.html.erb
我已经完成了我的代码,以确保我使用正确的div类和ID,但我确定我的表单在某处有问题。 我还为simple_form / bootstrap添加了必要的包装选项。 提前感谢您抽出宝贵时间帮助我。
这听起来像一个HTML / JavaScript问题。 我刚刚在cocoon问题上发布了类似的问题,所以听起来像是使用id而不是类来重复这个问题。
不确定是否会导致问题,但我发现你有一个
。
虽然在这种情况下我期望的行为是,它显然有效,但它只会保存在第一个。 不完全是你所描述的。
其次:是否有意为每个孩子设置“添加任务”或“添加目标”?
我会写这些循环如下:
<%= f.simple_fields_for(:tasks) do |task| %> <%= render 'task_fields', :f => task %> <% end %> <%= link_to_add_association 'add task', f, :tasks, :render_options => {:wrapper => 'bootstrap' } %> <% end %>
[咆哮]我应该再尝试推广haml吗? 我看到人们在使用erb时犯了很多错误,它只是变得混乱(你的缩进很混乱),我有时候真的不明白为什么更多人使用haml或slim。 我发现它使我的观点更具可读性。 [/咆哮]