据我了解,HTML 不支持 HTTP 动词“DELETE”,因此在创建删除表单时需要不同的路由。
如果是这样,为什么这段代码可以正常工作,
<%=button_to 'Delete', {:controller => :users, :action => 'destroy', :id => user.id}, :method => :delete%>
但是,下面的代码不起作用
<%=button_to 'Delete', {:controller => :users, :action => 'destroy', :id => user.id}%>
它给出了错误:
'没有路由匹配 [POST] "users/1/"'
解析的 url 不应该是 users/destroy/1
吗?
最佳答案
听起来您不需要代码答案,因为您已经有了一个可用的版本。 Rails 在幕后做了很多事情,所以除非你去检查它,否则很难知道浏览器到底发生了什么。
DELETE 可能无法作为 HTML 中的属性使用 <form>
标记,但它仍然是一个有效的 HTTP 请求。
Are the PUT, DELETE, HEAD, etc methods available in most web browsers?
What is the usefulness of PUT and DELETE HTTP request methods?
关于ruby-on-rails - 使用:method => delete in button_to?的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52910079/