рельсы UJS - JavaScript не выполняется - PullRequest
10 голосов
/ 20 ноября 2011

Это очень странная проблема. У меня есть приложение 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' %>

Большое спасибо всем, кто может пролить немного света на эту странную проблему!

1 Ответ

10 голосов
/ 22 ноября 2011

Есть ли вероятность ошибки в js?Запрос ajax обычно не отображается в консоли js.http://www.alfajango.com/blog/rails-js-erb-remote-response-not-executing/

(аналогичная среда отлично работает на моей машине)

...