Я обновляю приложение с Rails 4.2 до Rails 5.2.
В этом приложении есть ситуация:
- jQuery
$.ajax()
отправляет запросы # создать с type: 'POST', dataType: 'script'
. - Контроллер перенаправляет на другое действие, поддерживая
format: :js
. - Второе действие принимает вызов как JS и отображает файл
.js.erb
. - InВ Rails 4 этот
.js.erb
будет работать так, как он должен. - В Rails 5 моя веб-страница исчезает, и файл
.js.erb
отображается в браузере как есть.
Мои исследования ( пример ) привели меня к мысли, что это связано с Turbolinks, который любит заменять страницу тем, что получает от сервера.
Обновление: удаление турболинков исправляетпроблема.Я хотел бы иметь возможность исправить это, не отключая турболинки.
Как заставить .js.erb
работать правильно, а не просто визуализировать?
Environment
ruby 2.6.3
rails 5.2.3
jquery-rails 4.3.3
turbolinks 5.2.0
Code
В целом много кода.Вот части, которые кажутся мне наиболее подходящими: вызов AJAX серверу и ответ сервера.
# jQuery:
$.ajax({
type: "POST",
dataType: "script",
url: "/requests?c=" + c_id,
success: function(data){
...
}
})
# second controller action
...
respond_to do |format|
format.js
end
Вопросы, относящиеся *
Можно ли отключитьTurbolinks для определенных вызовов jQuery Ajax для предотвращения обновления и прокрутки страницы?