没有路线匹配 [POST] - Rails destroy

No route matches [POST] - Rails destroy

我是 RoR 的新手,在解决我可能遇到的各种错误方面仍然没有足够的经验。在这种情况下,我正在设计一个博客,我可以在其中发表 post 篇文章。更具体地说,我的问题与删除这些文章有关。

据我所知,写作:

resources :articles

routes 文件中是另一种写法:

get "/articles"            #index
post "/articles"           #create
delete "/articles/:id"     #delete
get "/articles/:id"        #show
get "/articles/new"        #new
get "/articles/:id/edit"   #edit
patch "/articles/:id"      #update
put "/articles/:id"        #update

当我尝试删除文章时出现以下错误:

没有路线匹配[POST]“/articles/1”

我写的代码是:

查看

<% @articles.each do |art| %>
    <%= art.title %>
    <div>
        <%= art.body %> - <%= link_to "Delete", art, method: :delete %>
    </div>
<% end %>

控制器

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

听起来你有这样的看法:

<%= art.body %> - <%= link_to "Delete", art, method: :destroy %>

但您实际上需要:

<%= art.body %> - <%= link_to "Delete", art, method: :delete %>

我建议根据你对@GonzaloRobaina 的评论的回复,在你的应用中仔细检查这一点。

在我看来,您的代码中缺少正确的路径。它应该与这样的东西一起工作:) <%= link_to "Delete, article_path(art), method: :delete %>