如何在 Rails 6 中使用茧宝石
Posted
技术标签:
【中文标题】如何在 Rails 6 中使用茧宝石【英文标题】:How to use cocoon gem in Rails 6 【发布时间】:2020-01-18 08:30:09 【问题描述】:一直在使用 cocoon gem
用于 rails 4 和 rails 5 应用程序中的嵌套表单。目前,我正在将其中一个 rails 5.2 应用程序(使用 cocoon gem)更新到 rails 6。
由于 rails 6 使用 webpacker,所以我厌倦了像以前版本的 rails 一样在 application.js
文件中要求 cocoon javascript。
app/javascript/application.js
//= require cocoon
但不幸的是,事情似乎并不奏效。也尝试过导入,但当然,它也无法正常工作,因为 cocoon 不能作为 javascript 包使用。
对此有任何解决方案或替代方案吗?
【问题讨论】:
【参考方案1】:更新的解决方案: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,因此我们可以使用yarn或npm通过提供GitHub repo链接来安装包。
纱线添加 github:nathanvda/cocoon#c24ba53
Cocoon 包将安装,您可以检查您的 package.json
文件。
“茧”:“github:nathanvda/cocoon#c24ba53”
提交号#c24ba53
很重要,请确保它包含在您的package.json
文件中
之后,您可以在application.js
文件中导入cocoon.js。
导入“茧”;
【讨论】:
不工作。出现类似“未定义方法 `link_to_add_association' 的错误” @faisalbhatti 您也必须像我们通常那样安装 gem。这只是我们导入 javascript 文件的部分 其实我们应该调用appplication.js " import 'cocoon/app/assets/javascripts/cocoon' "【参考方案2】:茧页面上有一个'hack':
https://github.com/nathanvda/cocoon/issues/555
【讨论】:
【参考方案3】:首先:运行
yarn add cocoon-js
第二:添加到application.js
import 'cocoon-js'
【讨论】:
link_to_add_association
和其他辅助方法呢?【参考方案4】:
照常安装cocoon rubygem
yarn add cocoon-js-vanilla
// app/javascript/packs/application.js 在这个文件的顶部做:
import "cocoon-js-vanilla";
灵感来自:https://github.com/joerodrig/cocoon-js
【讨论】:
以上是关于如何在 Rails 6 中使用茧宝石的主要内容,如果未能解决你的问题,请参考以下文章
如果对象在 Rails 6 中以嵌套形式不存在,如何创建对象?
Rails 6:如何通过 webpacker 添加 jquery-ui?