如何在rails中执行删除和放置操作?我已经阅读了文档并认为我正在做所有事情,但我似乎无法让它工作。
例如,如果我想删除一个员工,我会创建一个名为“EmployeesController”的控制器,并创建一个destroy方法来执行删除。
然后我进入routes.rb文件并输入map.resources :employees
,这样您就可以访问URL帮助程序函数了。
在我想要调用Ajax操作的任何内容中,我应该只有一行:
<%= link_to_remote "Delete", employee_path(@employee), :method => :delete %>
当我点击链接时,它仍在发送POST操作,因此它什么都不做。
我错过了什么或做错了什么?
答案 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标记