删除无法使用crud功能(rails)

时间:2016-01-03 21:21:41

标签: ruby-on-rails

我的控制器中有一些东西无效,因为我的应用程序中的特定项目在按下按钮时没有删除。我尝试在我的destroy方法的开头添加一个binding.pry,它没有被击中。因此,我不确定我做错了什么是在不使用rails控制台的情况下保持我的项目被删除。

有人知道我做错了吗?

我的controller

class ItemsController < ApplicationController
before_action :find_item, only: [:show, :edit, :update, :destroy]

def destroy
   @item.destroy
   redirect_to root_path
 end

end

我的show页面

%h1= @item.title
%h3= @item.description

= link_to "Home", root_path
= link_to "Edit", edit_item_path(@item)
= link_to "Delete", item_path(@item), method: :delete, data: {confirm: "Are you sure?"}

我的路线页面如下:

Rails.application.routes.draw do
 resources :items
 root 'items#index'
end

我的application.js文件我有这个

//= require jquery
//= require bootstrap-sprockets
//= require jquery_ujs
//= require turbolinks
//= require_tree

2 个答案:

答案 0 :(得分:2)

我在destroy操作中看不到任何删除查询。

尝试:

def destroy
  if @item.destroy
    redirect_to root_path
  else
    # Unable to delete ...
  end
end

现在应该从数据库中删除该项目,然后重定向用户。

答案 1 :(得分:1)

您的routes文件是什么样的?

您是否有delete方法的路线?

点击您创建的链接后会发生什么?记录到控制台的内容是什么?

此外,您实际上并未删除任何内容作为销毁操作的一部分。您只能重定向到root_path