使用RoR调用HTTP删除方法

时间:2012-03-16 16:56:40

标签: ruby-on-rails-3

我正在尝试从用户实施HTTP删除请求。所以我在我的HTML文件中得到了这个,

<li><a href="/signout">Logout</a></li>

但在我的路线文件中,我得到了这个:

match '/signout', to: 'sessions#destroy', via: :delete

和destroy定义为:

  def destroy
    sign_out
    redirect_to root_path
  end

如果我删除“via:delete”似乎工作正常。但是如何使用HTML调用DELETE方法?

2 个答案:

答案 0 :(得分:1)

如果您正在使用不显眼的rails插件进行jquery或[其他js libs],这很容易做到这一点。

<li><%= link_to "Logout", '/signout', method: :delete %></li>

通过使用as: :signout命名路线可以使其变得更漂亮,允许您使用signout_path作为网址助手。

https://github.com/rails/jquery-ujs

答案 1 :(得分:0)

请参阅Is it possible to trigger an HTTP DELETE request from an HTML form?

基本上你需要通过XMLHttpRequest来完成。