2008-10-02 63 views
6

如何在rails中安全地执行delete和put操作?我已经阅读了文档,并认为我正在做的一切正常,但我似乎无法让它工作。在rails中安全地执行AJAX删除操作

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

然后我进入routes.rb文件并输入map.resources :employees,它使您可以访问URL辅助函数。

在任何我想打电话从阿贾克斯操作,我应该有这样一行:

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

当我点击链接,它仍然是发送POST操作,所以它什么都不做。

我在想什么或做错了什么?

回答

6

尝试

:url => employee_url(@employee) 

IIRC,* _path被产生的一个名为路线:资源指令,它包括方法,从而覆盖您:方法=>:删除

4

从我的代码:

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

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

所以它正在调用正确的销毁行为,我通过向控制器添加了一些调试语句来证明。是的,我的删除代码在控制器中是错误的,所以当我认为它不是真的删除时。

-1

如果你的问题没有AJAX请求,你必须添加适当的JavaScript标签