ruby-on-rails – 嵌套表单:link_to_add:自定义以使用多个fiel
我有一个嵌套的表单,其中嵌套的子对象类型在表单上重复,以便我可以在表单元素中应用各种不同的默认值.我将它们分成不同类的子对象是没有意义的,因为我只是将它们分开,以便以对用户有意义的方式组织它们并填充不同的默认值;他们是完全相同的.
在我的部分,我有这样的事情: Children 1 <%= f.fields_for :children do |builder| %> <% next if not builder.object.type == 1 %> ... fields for type 1 children ... <% end %> <%= f.link_to_add( "add child",:children ) %> Children 2 <%= f.fields_for :children do |builder| %> <% next if not builder.object.type == 2 %> ... fields for type 2 children ... <% end %> <%= f.link_to_add( "add child",:children ) %> ... etc ... 这很好,除了link_to_add总是给出具有最终fields_for / builder块的默认值的字段(即Type N Children),而不是使用紧邻它们的fields_for / builder块的默认值.如何为link_to_add提供正确的功能? 从https://github.com/ryanb/nested_form#enhanced-jquery-javascript-template开始:
在我看来,必须对这个insertFields函数进行一些小的调整,这将使它复制所需的表单元素,而不仅仅是页面上的最终元素.我只有最简单的javascript经验,所以我希望有人能指出那是什么! 仅供参考,完整的jquery文件在这里: 非常感谢, 解决方法
我忽略了发布我为这个问题找到的解决方案.姗姗来迟,这是它.
我最终为我的子类型使用单表继承(STI),使每个类都成为一个类,即使这对我来说太过分了.然后,以下工作: <h>ClassOneChild form</h> <%= f.fields_for :class_one_children do |builder| %> ... <% end %> <%= f.link_to_add( "add child",:class_one_children ) %> <h>ClassTwoChild form</h> <%= f.fields_for :class_two_children do |builder| %> ... <% end %> <%= f.link_to_add( "add child",:class_two_children ) %> ... <%= f.submit "Save Children" %> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |