Это очень странная проблема. У меня есть приложение rails, в котором я заменяю один фрагмент на странице другим, используя UJS. Недавно это перестало работать, поэтому я начал регистрироваться на протяжении всего процесса, чтобы увидеть, где он сломался. Вот что я нашел:
- После того, как ссылка нажата, консоль rails сообщает мне, что все обработано, включая все частичные, и возвращает 200 OK.
- А вводит в контроллер действия, возвращает нормально
- A помещает в блок response.do возвращает отлично
- A помещает в файл .js.erb возвращает штраф
Это означает, что он полностью запустил файл .js.erb и оценил рубин без ошибок. Но вот что странно - ни один из javascript не выполняется. Когда я запускаю предупреждение ('привет?') В файле .js.erb, оно не выполняется.
Кто-нибудь когда-нибудь сталкивался с этой проблемой раньше? Кажется чрезвычайно странным, что он запускает оценку erb, но не js. И в консоли js ошибок не появляется.
Для справки: очистил кеш, перезапустил браузер, перезапустил приложение rails и ничего не изменилось.
Пример кода:
# view
link_to 'example', some_path, :remote => true
# controller
respond_to do |format|
format.js
end
# .js.erb file
alert('this never shows up');
<% puts 'this shows up in the rails console' %>
Большое спасибо всем, кто может пролить немного света на эту странную проблему!