首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >提交多表表单Rails 4

提交多表表单Rails 4
EN

Stack Overflow用户
提问于 2016-05-30 04:11:18
回答 1查看 37关注 0票数 0

有个问题,

我有一张多表表格。这些选项卡可以由用户创建和删除(通过JS)。所有这些选项卡包含完全相同的字段,都属于特定的实体。(例如,“属于”RateTag的各种RateSlots )

我的问题是如何在所有选项卡上提交详细信息。

在我当前的实现中,我为各个选项卡中的每个表单字段动态分配新的i,循环遍历它们,将所有值添加到一个数组中,并进行一个API调用,为一个RateTag传递RateSlots。

不知何故,我认为这是低效的,请有更好的方法。

让所有选项卡中的字段具有相同的ID,而不是多个不同的ID。

没有任何支持模型,因为API调用是使用表单提交上的详细信息进行的。

如有任何帮助,将不胜感激

EN

回答 1

Stack Overflow用户

发布于 2016-05-30 05:12:12

不确定它是否与Rails有很大的联系,似乎它主要是与JavaScript相关的,是吗?

你可以查看RailsCast #197 episode来获得一个想法。

他所做的是使用元素名称和ids中的已知字符串键创建一组“模板”字段。code

代码语言:javascript
复制
fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
  render(association.to_s.singularize + "_fields", :f => builder)
end

其中,关联是子对象的名称,例如"new_rateslot“。然后,为了在JavaScript中添加一组字段,它创建一个副本,并用这个已知字符串("new_rateslot")替换生成的唯一ID。code

代码语言:javascript
复制
function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g")
  $(link).up().insert({
    before: content.replace(regexp, new_id)
  });
}

因此它会创建新的字段,如下所示

代码语言:javascript
复制
input id="ratetag_rateslot_attributes_unique_id" name="ratetag[rateslot_attributes][unique_id]"

因此,它不是生成完全随机的ID,而是使用像parent_object_namechild_object_nameunique_id之类的有意义的结构

请查看此answer以获得对此概念的一些解释

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37514476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档