在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标签