如何将复制按钮集成到使用 cocoon gem 创建的表单中

Posted

技术标签:

【中文标题】如何将复制按钮集成到使用 cocoon gem 创建的表单中【英文标题】:How to integrate a copy button to a form that is created using cocoon gem 【发布时间】:2021-04-17 07:49:25 【问题描述】:

有 FundApplication 和 ExpenseRequest,FundApplication 有_many fee_requests。

按下“添加费用”按钮将添加费用请求并且工作正常。现在我的客户要求我在这里实现一个复制按钮

他想要的是添加一个按钮,该按钮插入一个新的费用请求,但将该按钮所属的费用请求数据复制到新创建的费用请求的字段中

我试过了 How to create a copy of item added in cocoon nsted form rails? How could I clone a child object in Rails using cocoon?

它们都不适合我的场景。

【问题讨论】:

【参考方案1】:

您可以访问cocoon 特定的回调;特别是cocoon:after-insert。你可以这样做(未经测试):

$(document).ready(function() 
  $("#formContainer").on(
    "cocoon:after-insert", (event, insertedItem, originalEvent) 
      console.log("event: ", event)
      console.log("insertedItem: ", insertedItem)
      console.log("originalEvent: ", originalEvent)
  )
)

使用原始事件(click 事件),您可以找到属于该按钮的字段并从中获取值,然后使用这些值设置新插入的项目中的值。

【讨论】:

以上是关于如何将复制按钮集成到使用 cocoon gem 创建的表单中的主要内容,如果未能解决你的问题,请参考以下文章

rails:如何覆盖 cocoon gem 辅助方法并调用原始方法

在 Ruby on Rails 4.2 中使用 Cocoon gem 嵌套表单

是否有任何 gem 可以将 paypal 按钮 api 集成到 rails 应用程序? [关闭]

Cocoon gem,编辑或错误时未建立深度关联

<ol> <li> 使用 rails partial 和 cocoon gem 实现的问题

使用 COCOON Rails 3 在动态字段中自动完成 Jquery