упс ..
Я пропустил следующую строку в моем application.js
//= require jquery_ujs
Я заменил его, и он работает ..
======= ОБНОВЛЕНО =========
Через 5 лет я вернулся с той же ошибкой, теперь у меня есть новый Rails 5.1.6 , и я снова нашел этот пост. Прямо как круг жизни.
Теперь проблема заключалась в том, что
Rails 5.1 по умолчанию удалил поддержку jquery и jquery_ujs и добавил
//= require rails-ujs in application.js
Это делает следующие вещи:
- вызвать диалог подтверждения для различных действий;
- делать не-GET запросы от гиперссылок;
- заставить формы или гиперссылки передавать данные асинхронно с Ajax;
- кнопки отправки автоматически отключаются при отправке формы, чтобы избежать двойного щелчка. (от: https://github.com/rails/rails-ujs/tree/master )
Но почему он не включает токен csrf для запроса ajax? Если кто-то знает об этом подробно, просто прокомментируйте меня. Я ценю это.
В любом случае я добавил следующее в свой файл js, чтобы он работал (спасибо за другие ответы, которые помогут мне добраться до этого кода):
$( document ).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-Token': Rails.csrfToken()
}
});
----
----
});