如何在 Rails 6 中使用 cocoon gem

How to use cocoon gem in Rails 6

已在 rails 4 个和 rails 5 个应用程序中使用 cocoon gem 嵌套表单。目前,我正在将 rails 5.2 应用程序之一(使用 cocoon gem)更新为 rails 6。

由于 rails 6 使用的是 webpacker,所以我厌倦了在 application.js 文件中要求 cocoon javascript,就像我们在以前的 rails 版本中所做的那样。

app/javascript/application.js

//= require cocoon

但不幸的是,事情似乎并不奏效。也尝试过导入,但当然,它也没有用,因为 cocoon 不能作为 javascript 包使用。

对此有任何解决方案或替代方案吗?

茧页上有一个'hack':

https://github.com/nathanvda/cocoon/issues/555

更新解决方案:Cocoon 包已发布,因此可以轻松将其与 wepacker 一起使用

在您的 Gemfile 中添加以下内容:

gem "cocoon"

添加配套包

yarn add @nathanvda/cocoon 

然后在你的 app/javascripts/packs/application.js 中你应该添加

require("jquery")
require("@nathanvda/cocoon")

旧解:

cocoon GitHub 存储库上有这个 Pull Request 对我来说非常有用。

Package.json 在此分支中提供,因此我们可以通过提供 GitHub repo link.

使用 yarn 或 npm 安装包

yarn add github:nathanvda/cocoon#c24ba53

Cocoon 包将安装,您可以检查您的 package.json 文件。

"cocoon": "github:nathanvda/cocoon#c24ba53"

提交编号 #c24ba53 很重要,确保它包含在您的 package.json 文件中

之后,您可以在 application.js 文件中导入 cocoon.js。

import "cocoon";

第一个: 运行

yarn add cocoon-js

其次:添加到application.js

import 'cocoon-js'

照常安装 cocoon ruby​​gem

yarn add cocoon-js-vanilla

// app/javascript/packs/application.js 在此文件的顶部执行:

import "cocoon-js-vanilla";

灵感来自:https://github.com/joerodrig/cocoon-js