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

时间:2016-04-22 21:34:44

标签: ruby-on-rails ruby routes partials

目标是删除一个项目;我得到了错误在我的路线中的印象:

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中的destroy动作:

  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

如前所述,我得到的印象是我的路线,虽然我已经修补了一段时间。有谁看到我误解了什么?

谢谢。

2 个答案:

答案 0 :(得分:0)

你不应该使用根路径,你应该使用项目路径

答案 1 :(得分:0)

问题在于:destroy定义了DELETE route for /:id, not for /。您只能删除某些内容而不是所有内容。

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

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