2016-07-30 116 views
1

我在设置我的http动词要删除时遇到问题。这是我在rails 5中的第一个应用程序,我也使用购买的主题,所以我确信我错过了一些愚蠢的东西。当我创建下面的链接:Rails 5 data-method = delete发送GET请求

<%= link_to 'Sign out', destroy_user_session_path, :method => :delete %> 

我得到

<a rel="nofollow" data-method="delete" href="https://stackoverflow.com/users/sign_out">Sign out</a> 

然而,这仍然是发送一个GET请求。我见过的大部分答案都是用来检查jquery ujs是否正在加载。它看起来像。我错过了什么吗?

<script src="/assets/jquery_ujs.self-e87806d0cf4489aeb1bb7288016024e8de67fd18db693fe026fe3907581e53cd.js?body=1" data-turbolinks-track="reload"></script> 
+0

是否jquery(不是ujs)也被加载?浏览器控制台中是否有任何错误?您的浏览器是否启用JavaScript?无论如何,data-method =“delete”应该创建阴影表单并使用它模拟删除(如果浏览器支持的话)。你也可以使用button_to。 –

+0

谢尔盖 - jquery也被加载和js没有被禁用。我可以在浏览器控制台中使用jQuery选择器。感谢您的回应。 –

+0

您可以尝试在您的javaScript中查找e.stopPropagation(),或者尝试使用therubyracer gem而不是execjs,或者尝试禁用turbolinks可能... –

回答

0

我有同样的问题。 我做了什么: 运行删除所有编译资产

rails assets:clobber

变化的config/production.rb

config.assets.compile = true

的application.js:

//= require jquery2 
//= require jquery_ujs 

希望它有助于