没有路线匹配 [删除] "/articles" 在 Ruby on Rails 中



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

No route matches [DELETE] "/articles"

我的 routes.rb 中有resources :articles命令

文章控制器

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"} %>

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

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

@articlearticle,请重构代码。

并像这样更新destroy方法

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

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

希望它会有所帮助。

运行rails routes.

您的destroy route可能是这样的:

DELETE     /articles/:id(.:format)

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

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

试试这个

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

最新更新