我正在使用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"} %>
答案 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