首页 > 解决方案 > 'jquery-rails' 和 'jquery-ui-rails' 可以在一个项目下管理吗?

问题描述

我有一个使用Rails 5.1.6和的 Rails 应用程序ruby 2.3.5p376

我有这两个宝石在我的Gemfile

gem 'jquery-rails', '~> 4.3.3'  
gem 'jquery-ui-rails', '~> 6.0.1'

在 show.html.erb 我有以下内容:

<script>
$( function() {
  $( "#datepicker" ).datepicker();
} );
</script>

<p>Date: <input type="text" id="datepicker"></p>
<p id="notice"><%= notice %></p>

在 application.js 中

//= require jquery-ui
//= require jquery
//= require rails-ujs
//= require turbolinks
//= require_tree .

在 application.css

/*
 *= require jquery-ui
 *= require_tree .
 *= require_self
 */

浏览器现在显示以下错误:

Uncaught ReferenceError: jQuery is not defined
at application

如果从应用程序 jquery 函数中删除“jquery-ui-rails”,则工作正常。

标签: jqueryruby-on-railsrubyjquery-uiruby-on-rails-4

解决方案


这是您的错误:

//= require jquery-ui
//= require jquery

依赖脚本按顺序包含,即jquery-ui加载时,它找不到 jQuery(接下来会加载,但脚本执行会因您的错误而退出并且无法继续)。

为了解决这个问题,放置jquery 在之前 jquery-ui

//= require jquery
//= require jquery-ui

推荐阅读