如何建立到rails资源的DELETE链接?

at.*_*at. 4 ruby-on-rails http http-headers ruby-on-rails-3 ruby-on-rails-3.2

如果我想在rails中创建DELETE链接,我会编写以下代码(在此示例中为删除Devise中的用户会话):

<%= link_to('Logout', destroy_user_session_path, :method => :delete) %>
Run Code Online (Sandbox Code Playgroud)

这将变成以下HTML:

<a rel="nofollow" data-method="delete" href="/users/sign_out">Logout</a>
Run Code Online (Sandbox Code Playgroud)

效果很好,除了我不能简单地将HTML放入静态HTML页面.它只会做一个GET请求.我假设Rails包含一些标准的Javascript来将上面的链接转换为实际执行DELETE请求的链接.那么在静态HTML页面上链接到执行DELETE操作的Rails资源的正确方法是什么?我应该找到并抓住Javascript Rails包含在所有这样做的网页中吗?有没有更好的办法?

Bra*_*rth 6

DELETE遗憾的是,您无法发送带锚链接的请求 - 传统的锚链接只会发送GET请求.实际上,你根本无法发送真正的DELETE请求.如果你想创建一个没有javascript的删除链接,解决方案相当容易.查看2.4 PUT或DELETE方法的表单如何工作?官方文档中.基本上,您可以使用方法创建一个提交到资源网址的表单delete.这很简单,你不需要依靠javascript来完成工作.希望这有帮助,祝你好运.