gpt4 book ai didi

ruby-on-rails - Rails - 复制表单的一部分以提交多条记录

转载 作者:行者123 更新时间:2023-12-04 03:45:09 25 4
gpt4 key购买 nike

我有一个包含很多字段的 Rails 表单。用户希望能够通过单击按钮复制包含 6 个字段的表单部分,以便这 6 个字段在页面上出现两次,然后填写这些字段并提交表单以创建 2 条新记录。

= form_for @item, :html => { :class => "form-horizontal" } do |f|
.panel
h4 Personal Details
.field
= f.label :contact_name
= f.text_field :contact_name
.field
= f.label :email_address
= f.text_field :email_address

.duplicate-section.panel
h4 Info
.field
= f.label :location
= f.select :location
.field
= f.label :time
= f.text_field :time

= link_to "Add new Info Section", '#'

link_to 添加了一个新的 .duplicate-section 到表单,所以我可以在页面上创建额外的字段,但我不知道如何将表单作为两个单独的记录提交。

最佳答案

要管理它,您可以创建一个模型来封装您的差异记录:

运行

rails g model item_wrapper
bundle exec rake db:migrate

应用程序/模型/item_wrapper.rb

class ItemWrapper < ActiveRecord::Base
has_many :items
accepts_nested_attributes_for :items
end

并关注this railscast创建添加和删除信息部分按钮。

最后,您可以通过将字段更改为隐藏并为您的项目重复字段填充值来自定义生成的 javascript。

总结:

  1. 为您的项目创建一个包装器(仅包含一个 id)
  2. 在包装器表单中为您的项目创建一个 has_many 嵌套表单(使用 fields_for)
  3. 创建 add_fields 按钮(cf rails cast)
  4. 然后自定义您的 js add_fields 函数以更改具有重复内容的字段

干杯

相信它已经足够清楚了,我可以根据需要编辑答案以使其更清楚。

关于ruby-on-rails - Rails - 复制表单的一部分以提交多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26256724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com