我的控制器中有一些东西无效,因为我的应用程序中的特定项目在按下按钮时没有删除。我尝试在我的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
答案 0 :(得分:2)
我在destroy
操作中看不到任何删除查询。
尝试:
def destroy
if @item.destroy
redirect_to root_path
else
# Unable to delete ...
end
end
现在应该从数据库中删除该项目,然后重定向用户。
答案 1 :(得分:1)
您的routes
文件是什么样的?
您是否有delete
方法的路线?
点击您创建的链接后会发生什么?记录到控制台的内容是什么?
此外,您实际上并未删除任何内容作为销毁操作的一部分。您只能重定向到root_path
。