在我的网格中,
link_to('Edit', edit_manage_user_path(user.id))
工作正常但是,
link_to('Delete', delete_manage_user_path(user.id))
为#<#:0xc05439c>“提供错误”未定义方法`delete_manage_user_path'“鉴于我的控制器中有删除操作..
知道为什么会出现这个错误?
答案 0 :(得分:2)
link_to 'Delete', manage_user_path(user), method: :delete
这将调用您的删除操作。如果您使用的是restful routing,则没有这样的路径delete_manage_user_path(user)
。
答案 1 :(得分:2)
如果您使用resurces
路由,则destroy
操作的路径与show
相同,但您应使用HTTP DELETE
方法:
link_to 'Delete', [:manage, user], method: :delete
答案 2 :(得分:1)
知道是成功的一半。您需要确定删除资源的正确途径。您可以通过运行以下命令来执行此操作:
bundle exec rake routes
这是我自己的一个Rails应用程序输出的示例:
我在你应该寻找的东西上加了一个箭头。
获得路线后,您需要在用户点击链接时指定发送HTTP请求的方式。您可以通过在嵌套的自定义method
属性中提供data
密钥来执行此操作。这是一个例子:
<%= link_to "Delete", user_path(user), data: { method: :delete } %>
其他资源:
答案 3 :(得分:0)
删除调用的格式为:
<%= link_to 'Delete', manage_user_path(user.id), :method => :delete %>
使用rake routes
了解可用的路由,包括生成的路由助手,以及处理请求的控制器/操作。
答案 4 :(得分:0)
我总是更喜欢按钮方式:
= form_with url: destroy_user_session_path, method: :delete do |form|
= form.submit "Sign out"