首页 > 解决方案 > 为什么 ruby​​ 破坏方法不破坏?(见下文)

问题描述

我的控制器

def destroy
  @article = Article.find(params[:id])
  @article.destroy
  redirect_to articles_path
end

我的观点

<td><%= link_to 'Destroy', article_path(article),
              method: :delete,
              data: { confirm: 'Are you sure?' } %></td>

教程页面的注释: 这里我们link_to以不同的方式使用。我们将命名路由作为第二个参数传递,然后将选项作为另一个参数传递。和选项用作 HTML5 属性,因此当单击链接时,Rails 将首先向用户显示一个确认对话框,然后使用方法提交:method链接。'data-confirm'delete

每当我单击删除按钮时,它都会显示编辑结果

强文本

标签: ruby-on-railsrubyruby-on-rails-4

解决方案


要获得更有用的异常,您可以做的一件事是!在您的destroy方法中添加一个 bang,如果销毁失败,它将引发异常。

可能有一些失败的关联验证或回调引发了您没有看到的异常。尝试将其用于您的销毁方法并在单击链接后查看您的服务器日志:

def destroy
  @article = Article.find(params[:id])
  @article.destroy!
  redirect_to articles_path
end

如果您在服务器日志中没有看到任何内容,则可能是路由问题


推荐阅读