没有匹配的路由 [删除] "/" ;轨道上的红宝石



目标是删除项目;我的印象是错误在我的路线中:

Rails.application.routes.draw do
  devise_for :users
  resources :users, only: [:show, :destroy]
  resources :items, only: [:new, :index, :create, :destroy]
  resources :welcome, only: [:index]
  get 'items/new'    
  root 'items#index'
end

部分如下:

<p><%= item.name %></p>
<%= link_to "Done!", root_path, method: :delete, class: 'glyphicon glyphicon-ok' %>

以防万一,以下是我items_controller中的销毁操作:

  def destroy
    @item = Item.find(params[:id])
    if @item.destroy
      flash[:notice] = "You accomplished a task!"
      redirect_to root_path
    else
      flash.now[:alert] = "There was an error deleting the task. Try again."
    end
  end

如前所述,我的印象是这是我的路线,尽管我已经修补了一段时间。有人看到我误解了什么吗?

谢谢。

不应使用根路径,而应使用项目路径

问题是:destroy/:id定义了一条DELETE路由,而不是为/定义了一条路由。您只能删除某些内容,而不能删除所有内容

您的link_to应链接到特定项目的删除路径,而不是链接到root_path或项目索引:

<%= link_to "Done!", item, method: :delete, class: 'glyphicon glyphicon-ok' %>

相关内容

  • 没有找到相关文章

最新更新