带有方法删除的Rails link_to在启用了turbolinks的情况下执行get请求

时间:2015-11-18 04:25:38

标签: jquery ruby-on-rails ruby-on-rails-4 turbolinks

启用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)尝试启用Turbolink并在链接<{p>}上尝试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)确保使用data-turbolinks-track将js文件加载到头部(它是唯一包含的javascript)

javascript_include_tag "application", "data-turbolinks-track" => true

7)检查路线和请求日志(正在执行 GET 而非删除

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(这确实有效)。任何其他建议将不胜感激。

2 个答案:

答案 0 :(得分:0)

这是对js文件中的单击处理程序的e.stopPropagation()调用。我不知道为什么会导致问题,我有其他调用stopPropagation,这是在页面(标题)的不同部分,而不是调用删除链接(主体)。所以解决但仍然困惑。

答案 1 :(得分:0)

我遇到了类似的问题,但通过在 application.js

中将 //= require jquery_ujs 替换为 //= require rails-ujs 已解决

请看这里:https://stackoverflow.com/a/56281048/2009652