<a>链接方法::删除HTML

问题描述

我对编程还是比较陌生的,只是想知道是否有一种方法可以使用= link_to "sign out",destroy_user_session_path,method: :delete链接来制作类似<a>的东西。

编辑

让我澄清一下,我确实在代码中使用了= link_to "sign out",method: :delete(我正在使用haml),但是它仍然在执行get请求。这在下拉菜单中,如果放置在实际页面上,则可以正常工作。有什么原因吗?还是铁轨只是愚蠢的?

解决方法

link_to将创建一个<a>元素。它只是创建<a>元素的Rails帮助器方法,但是具有能够轻松使用诸如Rails路由帮助器之类的东西以及附加行为(例如非GET动词)的附加好处。通常,单击<a>元素将使浏览器执行GET请求,但是删除不是幂等的,因此永远不要对GET请求进行删除。

Rails的link_to帮手可以通过允许您指定method: :delete来帮助您解决此问题,<a>可以为元素连接其他Javascript单击处理程序,这将导致该元素通过Javascript执行POST,而不仅仅是通过单击链接后,让浏览器发出GET请求。它仍然是getInventory元素,可以这样设置样式和外观,但是当单击时,它将使用DELETE动词执行表单发布,而不是执行简单的GET请求。

,

如果您生成了devise控制器,请按照以下步骤操作:

rails d devise:controllers users

代替:

rails d devise:controllers user
,

以下是制作链接的默认Rails帮助器方法,请参考以下链接。您将对link_to

有一个很好的了解

https://api.rubyonrails.org/v5.2.3/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to