Jquery Rails:FormBuilder的高级使用
我正在开发我们的webapp,上周我的任务包括实现一个嵌套表单,该表单具有动态字段添加删除功能(从关联的子模型)。请注意,表单实现了具有一对多关系的两个模型。我对它进行了研究,发现了不同的方法,其中一些方法添加/删除字段,而另一些方法使用js(rails 3或更早)。我遵循了railscast-196和,但解释的助手方法不是不引人注目的方法,对吗?(因为它仍然在html中使用js) 我正在寻找一种通过jquery以不引人注目的方式实现添加/删除特性的方法 从逻辑上讲,这应该可以通过 -发出ajax请求以构建嵌套模型的实例, -通过jquery在服务器端生成响应, -更新视图,然后 -将更新后的视图发送回客户端 问题: -我面临的问题是将builder对象传递给jquery。 期望: -通过jquery将两个自定义的添加和删除字段函数绑定到视图中的按钮Jquery Rails:FormBuilder的高级使用,jquery,ruby-on-rails,forms,ruby-on-rails-4,unobtrusive-javascript,Jquery,Ruby On Rails,Forms,Ruby On Rails 4,Unobtrusive Javascript,我正在开发我们的webapp,上周我的任务包括实现一个嵌套表单,该表单具有动态字段添加删除功能(从关联的子模型)。请注意,表单实现了具有一对多关系的两个模型。我对它进行了研究,发现了不同的方法,其中一些方法添加/删除字段,而另一些方法使用js(rails 3或更早)。我遵循了railscast-196和,但解释的助手方法不是不引人注目的方法,对吗?(因为它仍然在html中使用js) 我正在寻找一种通过jquery以不引人注目的方式实现添加/删除特性的方法 从逻辑上讲,这应该可以通过 -发出aja
另外:你能给我一个链接到FormBuilder更深入的文档吗?因为rubyonrails api没有足够的解释。他们甚至没有说如果你使用form_builder.object,你会(明确地)得到模型,更不用说ryanb使用FormBuilder的“f.object.class.reflect_on_association”。有一个gem明确地说明了你想要实现的: 如果要手动创建,请执行以下计划:
创建
或保存
调用父模型父对象生成参数时必须遵守某些约定。创建或保存。通常,在创建模型时,将一些属性传递给create
方法,这些属性对应于模型的字段。使用嵌套属性时,需要传递一个附加属性,该属性的格式如下:[children\u relation\u name]\u attributes
。因此,如果您有项目
和任务
模型,并且希望同时创建项目和任务,那么您需要像这样创建它们:
创建(名称:'Project 1',tasks_属性:[{name:'Task 1'},{name:'Task 2'}])
Parent
model有有多个:children
并且接受子对象的嵌套属性时,上述所有操作才有效
子属性的正确参数
param,将此参数添加到强参数中(例如子属性:[:name,:age,…]
)。对于可以使用form\u,对于
可以使用fields\u来构建表单,JS可以正确地将字段放入表单,嵌套属性可以同时创建父记录和子记录。这就是cocoon
gem所做的
至于Rails文档,它非常好,而且非常全面。是的,没有人是完美的,可能会有一些差距,但没有什么比这个文档更好的了。您也可以参考Rails代码,但这比仅仅阅读文档要困难得多。您不需要将builder对象传递给JQ,您可以使用Javascript加载部分,这是Rails响应浏览器请求时使用的纯HTML。Joe Half Face:删除已经存在且已填充的字段怎么样?