У меня есть приложение Rails, использующее Rails 5.1.6 и 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>

В приложении .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-ui-rails' удален из приложения, функция jquery работает нормально.

7
vidur punj 3 Июн 2018 в 17:36

1 ответ

Лучший ответ

Это ваша ошибка здесь:

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

Зависимые сценарии включены по порядку , т.е. когда jquery-ui загружен, он не может найти jQuery (который будет загружен следующим, но выполнение сценария завершается с вашей ошибкой и не может продолжаться).

Чтобы решить эту проблему, поместите jquery перед jquery-ui:

//= require jquery
//= require jquery-ui
8
DMKE 3 Июн 2018 в 15:53