没有路线匹配 [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 %>
我是 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 %>