упс ..
Я пропустил следующую строку в моем приложении. 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()
}
});
----
----
});