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-ujs
在 Rails 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