Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 没有与[POST]匹配的路由-Rails销毁_Ruby On Rails_Ruby_Routes_Destroy - Fatal编程技术网

Ruby on rails 没有与[POST]匹配的路由-Rails销毁

Ruby on rails 没有与[POST]匹配的路由-Rails销毁,ruby-on-rails,ruby,routes,destroy,Ruby On Rails,Ruby,Routes,Destroy,我是RoR新手,在解决可能出现的不同错误方面仍然没有足够的经验。在这种情况下,我正在设计一个博客,在那里我可以发表文章。更具体地说,我的问题与删除这些文章有关 据我所知,写作: resources :articles 在routes文件中,可以选择写入: get "/articles" #index post "/articles" #create delete "/articles/:id"

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

据我所知,写作:

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

我看不出我错过了什么。高级版谢谢。

听起来您的观点是:

<%= art.body %> - <%= link_to "Delete", art, method: :destroy %>
-
但实际上你需要:

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

我建议根据您对@GonzaloRobaina评论的回复,在您的应用程序中再次检查这一点。

routes.rb
中,您有
资源:文章
或那些书面路线?@Pavan,我编写了资源:文章无路线匹配[POST]“/articles/1”->它正在发送POST请求而不是删除由于“/articles/{id}”没有post路由,因此给出了错误消息。注意:某些浏览器不允许发送删除请求。添加这些路由后,您是否重新启动了服务器?能否确认您的HTML链接是否具有此属性:data method=“delete”?@jijhonstone,我看到的是
-
。根据@GonzaloRobaina的建议,我已经检查了data方法是否为delete,但不是destroy。我还要求在application.js中使用jquery和jquery_ujs。您可能已经知道了,但我过去认为这是一个混乱的根源:为了澄清,
method::delete
没有指示要执行哪个控制器方法。
jquery ujs
库使用它来正确处理
DELETE
请求。@jijohnstone,将DELETE替换为destroy会产生相同的错误。您的代码在Github或类似的网站上可用吗?@jijohnstone,您是对的。我又试了一次,成功了。谢谢
<%= art.body %> - <%= link_to "Delete", art, method: :delete %>