【问题标题】:Submit Multitabbed Form Rails 4提交 Multitabbed Form Rails 4
【发布时间】:2016-05-29 20:11:18
【问题描述】:

有问题,

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

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

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

我不知何故认为这效率低下,请问有没有更好的方法。

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

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

任何帮助将不胜感激

【问题讨论】:

    标签: javascript ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    不确定它是否与 Rails 密切相关,似乎主要与 JavaScript 相关,是吗?

    您可以查看 RailsCast #197 episode 了解一下。

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

    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

    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)
      });
    }
    

    所以它会创建看起来像

    的新字段
    input id="ratetag_rateslot_attributes_unique_id" name="ratetag[rateslot_attributes][unique_id]"
    

    因此,它不是生成完全随机的 ID,而是使用有意义的结构,例如 parent_object_name[child_object_name][child_field_name][unique_id] 或其他东西

    查看answer 以了解该想法的一些解释

    【讨论】:

    • 感谢您的输入。这与我当前的实现类似。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-16
    • 2018-11-16
    相关资源
    最近更新 更多