Giáo sư..
Tôi đã bỏ lỡ dòng sau trong application.js của tôi
//= require jquery_ujs
Tôi đã thay thế nó và nó hoạt động ..
======= CẬP NHẬT =========
Sau 5 năm, tôi trở lại với cùng một lỗi, bây giờ tôi có Rails hoàn toàn mới 5.1.6 và tôi đã tìm thấy bài đăng này một lần nữa. Giống như vòng tròn của cuộc sống.
Bây giờ vấn đề là gì:
Rails 5.1 đã xóa hỗ trợ cho jquery và jquery_ujs theo mặc định và đã thêm
//= require rails-ujs in application.js
Nó thực hiện những điều sau đây:
- buộc các hộp thoại xác nhận cho các hành động khác nhau;
- thực hiện các yêu cầu không NHẬN từ các siêu liên kết;
- tạo các biểu mẫu hoặc siêu liên kết gửi dữ liệu không đồng bộ với Ajax;
- có các nút gửi tự động bị vô hiệu hóa trên biểu mẫu gửi để ngăn nhấp đúp. (từ: https://github.com/rails/rails-ujs/tree/master )
Nhưng tại sao nó không bao gồm mã thông báo csrf cho yêu cầu ajax? Nếu ai biết về điều này một cách chi tiết chỉ cần bình luận cho tôi. Tôi trân trọng điều đó.
Dù sao, tôi đã thêm các mục sau vào tệp js tùy chỉnh của mình để làm cho nó hoạt động (Cảm ơn các câu trả lời khác để giúp tôi đạt được mã này):
$( document ).ready(function() {
$.ajaxSetup({
headers: {
'X-CSRF-Token': Rails.csrfToken()
}
});
----
----
});