在Rails中彻底执行AJAX删除操作

时间:2020-03-06 15:01:43  来源:igfitidea点击:

如何执行删除并将操作平稳地放置在rails中?我已经阅读了文档,并认为我所做的一切都正确,但是似乎无法正常工作。

例如,如果要删除员工,则可以创建一个名为" EmployeesController"的控制器,并创建一个destroy方法来执行删除操作。

然后,我进入routes.rb文件并输入map.resources:employees,它使我们可以访问URL帮助器功能。

无论我想从哪个调用Ajax操作,我都应该像下面这样一行:

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

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

我想念什么或者做错什么?

解决方案

尝试

:url => employee_url(@employee)

IIRC,* _ path是由:resource指令生成的命名路由,其中​​包括该方法,因此将覆盖:method =>:delete

从我的代码:

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

只是添加一些额外的细节:使用:url => employee_url(@employee)有帮助(来自已接受的答案)。令我感到困惑的另一部分是,我期待一个HTTP删除请求,但我不断收到带有设置为删除的参数" _method"(由rails自动添加)的POST请求。

因此,它调用了正确的销毁操作,我通过向控制器添加一些调试语句来证明这一点。是的,我的删除代码在控制器中是错误的,因此当我认为确实不是真正删除时,并没有真正删除它。

如果问题不是AJAX请求,则必须添加适当的javascript标签