没有路线与Ruby on Rails中的[DELETE]“ / articles”匹配

时间:2018-06-24 11:11:22

标签: ruby-on-rails ruby

我正在使用Rails 5.2.0,只是试图创建一个具有所有CRUD功能的简单博客。我可以创建/编辑帖子,但是无法删除它们。我收到的错误消息:

No route matches [DELETE] "/articles"

我的路由中有resources :articles命令。rb

ArticlesController

  def destroy
@article = Article.find(params[:id])
    respond_to do |format|
      format.html { redirect_to articles_url notice: 'Article was successfully deleted.' }
      format.json { head :no_content }
    end

显示页面链接:

<%= link_to 'Delete', article_path(@article), method: :delete, data: {confirm: "Are you sure"} %>

4 个答案:

答案 0 :(得分:2)

看,我想您已经错过了该对象,例如,如果您的delete链接进入each循环,那么肯定有一个像@articles.each do |article|的对象,这意味着该对象的名称为{{1 }},因此在删除链接上,您需要像这样传递对象

article

<%= link_to 'Delete', article_path(article), method: :delete, data: {confirm: "Are you sure"} %> @article,请重构代码。

并像这样更新article方法

destroy

如果没有任何帮助,请从日志文件中复制并粘贴您的错误日志。

希望它会有所帮助。

答案 1 :(得分:0)

运行rails routes

您的destroy route可能是这样的:

 DELETE     /articles/:id(.:format)

*您必须指定要销毁的ID!

答案 2 :(得分:0)

A Tour of Rails’ jQuery UJS 确保 Jquery 文件已正确加载到Rails项目中。阅读上面的链接以获取更多信息。

答案 3 :(得分:0)

尝试

def destroy
  @article = Article.find(params[:id]
  @article.destroy
    respond_to do |format|
      format.html { redirect_to articles_url}
      format.json { head :no_content }
    end
end