Rails 4 Turbo-Link не позволяет скриптам JQuery работать

Я создаю приложение Rails 4, и у меня есть несколько разбросанных js-файлов, которые я пытаюсь включить "путь рельсов". Я переместил плагины jquery в / vendor / assets / javascripts и обновил манифест (application.js), чтобы потребовать их. Когда я загружаю страницы локально, я вижу, что они отображаются правильно.

Однако я получаю противоречивое поведение от одного из скомпилированных скриптов. У меня есть js-файл для конкретного контроллера с именем projects.js, на который есть ссылка в application.js с помощьюrequire_tree .:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap.min
//= require jquery.form.min
//= require_tree .

Я вижу, что файл включен правильно, и он работает ... половину времени. В остальное время вещи в projects.js, похоже, ничего не делают (в основном это анимации jquery и некоторые запросы ajax). Когда это не сработает, я пару раз нажму на кнопки, ничего не произойдет, а потом скину эту ошибку:

Uncaught TypeError: Cannot read property 'position' of null 
turbolinks.js?body=1:75

Этого никогда не случалось, когда скрипты были в отдельных представлениях (неправильный путь), поэтому я совершенно уверен, что проблема не в моем коде JavaScript. Еще одна потенциально важная деталь заключается в том, что содержимое файла projects.js обернуто в$(document).ready(function(){, Кроме того, я тестирую в режиме разработки, поэтому javascripts и css не объединяются конвейером ресурсов.

Есть идеи, что здесь происходит? Я новичок в Rails, но я приложил все усилия, чтобы следовать всем соглашениям.

Обновить!

Это предсказуемокогда сценарии моего проекта не работают. Первая загрузка страницы работает каждый раз. Затем я нажимаю одну ссылку на новую страницу, которая использует мое поведение project.js ивторой страница никогда не работает. Я нажимаю несколько раз и в итоге выкидываю ошибку выше. Я все еще не уверен, почему, но я подозреваю, что это связано с турбо-связью.

Ответы на вопрос(3)

Ваш ответ на вопрос