Rails link_to 使用 delete 方法执行 get 请求并启用 turbolinks
Rails link_to with method delete performs get request with turbolinks enabled
当启用 Turbolinks 时,link_to with :method => :delete
正在执行 GET 请求。一旦我禁用 Turbolinks,它就会再次工作。我已经用尽了所有可能的解决方案,包括:
1) 确保助手生成正确的 HTML
<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/admin/organizations/1">Delete</a>
2) 在启用 Turbolinks 并在 link
上尝试了 data-no-turbolinks
3) 确保 jquery 和 jquery-ujs 都被加载
<script src="/assets/jquery/dist/jquery.self-a714331225dda820228db323939889f149aec0127aeb06255646b616ba1ca419.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-ujs/src/rails.self-d456baa54c1fa6be2ec3711f0a72ddf7a5b2f34a6b4f515f33767d6207b7d4b3.js?body=1" data-turbolinks-track="true"></script>
4) 试过 jquery.turbolinks
5) 确保控制台中没有 javascript 错误
6) 确保 js 文件加载到头部 data-turbolinks-track
(这是唯一的 javascript 包含)
javascript_include_tag "application", "data-turbolinks-track" => true
7) 检查路由和请求日志(正在执行 GET 而不是 DELETE)
21:56:40 web.1 | Started GET "/admin/organizations/1" for 127.0.0.1 at 2015-11-17 21:56:40 -0500
8) 确保 $(document)
绑定到 'page:change'
我不想使用 button_to
(确实有效)。任何其他建议将不胜感激。
这是对 js 文件中点击处理程序的 e.stopPropagation() 调用。我不知道为什么这是导致问题的原因,我有其他调用 stopPropagation 并且这是在页面的不同部分(header)而不是调用 delete link 的地方(main body).如此解决但仍然感到困惑。
我遇到了类似的问题,但是通过在 application.js
中将 //= require jquery_ujs
替换为 //= require rails-ujs
解决了这个问题
看这里:
link_to with :method => :delete
正在执行 GET 请求。一旦我禁用 Turbolinks,它就会再次工作。我已经用尽了所有可能的解决方案,包括:
1) 确保助手生成正确的 HTML
<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/admin/organizations/1">Delete</a>
2) 在启用 Turbolinks 并在 link
上尝试了data-no-turbolinks
3) 确保 jquery 和 jquery-ujs 都被加载
<script src="/assets/jquery/dist/jquery.self-a714331225dda820228db323939889f149aec0127aeb06255646b616ba1ca419.js?body=1" data-turbolinks-track="true"></script>
<script src="/assets/jquery-ujs/src/rails.self-d456baa54c1fa6be2ec3711f0a72ddf7a5b2f34a6b4f515f33767d6207b7d4b3.js?body=1" data-turbolinks-track="true"></script>
4) 试过 jquery.turbolinks
5) 确保控制台中没有 javascript 错误
6) 确保 js 文件加载到头部 data-turbolinks-track
(这是唯一的 javascript 包含)
javascript_include_tag "application", "data-turbolinks-track" => true
7) 检查路由和请求日志(正在执行 GET 而不是 DELETE)
21:56:40 web.1 | Started GET "/admin/organizations/1" for 127.0.0.1 at 2015-11-17 21:56:40 -0500
8) 确保 $(document)
绑定到 'page:change'
我不想使用 button_to
(确实有效)。任何其他建议将不胜感激。
这是对 js 文件中点击处理程序的 e.stopPropagation() 调用。我不知道为什么这是导致问题的原因,我有其他调用 stopPropagation 并且这是在页面的不同部分(header)而不是调用 delete link 的地方(main body).如此解决但仍然感到困惑。
我遇到了类似的问题,但是通过在 application.js
中将//= require jquery_ujs
替换为 //= require rails-ujs
解决了这个问题
看这里: