2014-09-04 35 views
0

在我网该删除操作,使用的link_to在轨

link_to('Edit', edit_manage_user_path(user.id)) 

工作正常,但此,

link_to('Delete', delete_manage_user_path(user.id)) 

给出了错误“未定义的方法`delete_manage_user_path”为#<#:0xc05439c> “鉴于我的控制器中存在删除操作..

任何想法为什么会出现此错误?

回答

2

如果使用resurces路线,路径destroy作用是一样的,以show,但你应该使用HTTP DELETE方法:

link_to 'Delete', [:manage, user], method: :delete 
+0

谢谢你,这工作! – Anss 2014-09-04 07:35:45

1
link_to 'Delete', manage_user_path(user), method: :delete 

这会调用您的删除操作。如果您正在使用宁静的路由,则没有此路径delete_manage_user_path(user)

+0

这不会解决'不确定method'错误。 – 2014-09-04 07:22:26

+0

是的,我正在编辑我的回答,同时 – 2014-09-04 07:22:59

0

为删除调用格式为:

<%= link_to 'Delete', manage_user_path(user.id), :method => :delete %> 

使用rake routes了解可用路线,包括生成的路线帮助程序以及处理请求的控制器/操作。

1

知道是战斗的一半。你需要找出哪些是删除资源的正确途径。

bundle exec rake routes

下面是从我自己的Rails应用的一个输出的例子: enter image description here

我添加了一个箭头,你应该寻找您可以通过运行以下命令这样做。

一旦你有了路由,你就需要指定当用户点击链接时如何发送HTTP请求。您可以通过在嵌套自定义data属性中提供method键来完成此操作。这里有一个例子:

<%= link_to "Delete", user_path(user), data: { method: :delete } %> 

其他资源: