Rails 5.1 中是不是还需要`require jquery_ujs`?

Posted

技术标签:

【中文标题】Rails 5.1 中是不是还需要`require jquery_ujs`?【英文标题】:Is `require jquery_ujs` still needed in Rails 5.1?Rails 5.1 中是否还需要`require jquery_ujs`? 【发布时间】:2017-11-11 23:33:21 【问题描述】:

我正在通过jquery-rails gem 在我的5.1.x Rails 应用程序中安装jQuery。

在 gem 设置中,他们建议默认将这些行添加到 application.js

//= require jquery
//= require jquery_ujs

但是,在 Rails 5.1.x 应用程序中,您已经有了不再依赖 jQuery 的这条线:

//= require rails-ujs

我想两者都在做完全相同的事情,并且不需要一个。

我应该保留两者还是只喜欢jquery_ujs 还是只喜欢rails-ujs

【问题讨论】:

只保留其中任何一个。 【参考方案1】:

jquery-ujsRails 5.1 已成为过去,您不再需要它。

【讨论】:

除非你还在使用 jQuery。 rails-ujs 不支持 jQuery - 它是专门为摆脱 jQuery 依赖而设计的。【参考方案2】:

从 Rails 5.1 开始,UJS(不显眼的 javascript)不再需要 jQuery。因此,如果您的 Rails 应用程序中不需要 jQuery,则可以使用

//= require rails-ujs

另一方面,如果您确实在您的应用程序中使用 jQuery,并使用 jquery-rails gem,那么您应该需要 rails-ujs,但应该改为使用:

//= require jquery
//= require jquery_ujs

jquery_ujs 与 jQuery 一起使用可能会导致应用出现问题,并且您可能会看到以下 JS 控制台错误:

Uncaught Error: jquery-ujs has already been loaded!

【讨论】:

以上是关于Rails 5.1 中是不是还需要`require jquery_ujs`?的主要内容,如果未能解决你的问题,请参考以下文章

如果你使用 Google Checkout,是不是还需要在 Rails 中使用 ActiveMerchant/Spree/some payment gateway?

未初始化的常量 Faker::Date 更新到 rails 5.1

Rails 表单验证方式 + 无提交按钮

如何在 Webpacker 中使用 Rails Url 助手/Rails 5.1 中的 React-rails

没有Rails的IRB控制台中的Figaro?

Rails 5.0 到 5.1 - 一对多关联上的“Cant cast Hash”