在rails中重复执行AJAX删除操作

时间:2008-10-02 14:20:43

标签: ruby-on-rails rest

如何在rails中执行删除和放置操作?我已经阅读了文档并认为我正在做所有事情,但我似乎无法让它工作。

例如,如果我想删除一个员工,我会创建一个名为“EmployeesController”的控制器,并创建一个destroy方法来执行删除。

然后我进入routes.rb文件并输入map.resources :employees,这样您就可以访问URL帮助程序函数了。

在我想要调用Ajax操作的任何内容中,我应该只有一行:

<%= link_to_remote "Delete", employee_path(@employee), :method => :delete %>

当我点击链接时,它仍在发送POST操作,因此它什么都不做。

我错过了什么或做错了什么?

4 个答案:

答案 0 :(得分:6)

尝试

:url => employee_url(@employee)

IIRC,* _path是由:resource指令生成的命名路由,包含该方法,因此覆盖你的:method =&gt; :删除

答案 1 :(得分:4)

从我的代码:

<%= link_to_remote "Delete", :url => post_url(post), :method => :delete %>

答案 2 :(得分:0)

只是添加一些额外的细节:使用:url => employee_url(@employee)帮助(来自已接受的答案)。搞砸了我的另一部分是我期待HTTP删除请求这一事实,但我一直收到带有参数“_method”(由rails自动添加)的POST请求,该参数设置为删除。

所以它调用了正确的destroy动作,我通过向控制器添加了几个调试语句证明了这一点。是的,我的删除代码在控制器中是错误的,所以当我认为它时它并没有真正删除。

答案 3 :(得分:-1)

如果您的问题没有AJAX请求,则必须添加正确的javascript标记