gpt4 book ai didi

ruby-on-rails - UsersController 中的 ActiveRecord::RecordNotFound#destroy 无法找到 'id' =11 的项目

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:01 24 4
gpt4 key购买 nike

我正在尝试在 Rails 中创建一个简单的应用程序,用户可以在其中列出待办事项并在完成后将其删除。我无法销毁元素。每次尝试此操作时,浏览器都会出现以下错误:

ActiveRecord::RecordNotFound in UsersController#destroy Couldn't find Item with 'id'=11

我已尝试对 Controller 和 _item 部分进行各种编辑。

以下是我为解决此问题而尝试实现的一些先前堆栈溢出问题/答案的几个链接:

ActiveRecord::RecordNotFound - Couldn't find User without an ID

Couldn't find <Object> without an ID (Deleting a record)

我正在使用 devise、Rails 5.0.0.1 和 Ruby 2.3.1(如果有帮助的话)。

这是我的代码:

class UsersController < ApplicationController

def show
@user = User.find(params[:id])
end

def destroy
Item.find(params[:id]).destroy
end
end


class ItemsController < ApplicationController

def create
@item = current_user.items.new(items_param)

if @item.save
flash[:notice] = "Item was saved successfully."
redirect_to current_user
else
flash.now[:alert] = "Error creating item. Please try again."
render :new
end
end


def destroy
@item = Item.find(params[:id])
@item.destroy
end


private

def items_param
params.require(:item).permit(:name)
end
end

这是项目部分_item.html.erb:

<%= content_tag :div, class: 'media', id: "item-#{item.id}" do %>
<%= link_to "", @item, method: :delete, class: 'glyphicon glyphicon-ok' %>

<%= item.name %>
<% end %>

Routes.rb:

Rails.application.routes.draw do
devise_for :users

resources :users, only: [:show, :destroy] do
resources :items, only: [:create, :show, :destroy]
end

root 'users#show'
end

浏览器错误:

ActiveRecord::RecordNotFound in UsersController#destroy Couldn't find Item with 'id'=11

我做错了什么?

最佳答案

也许这可以帮到你:

Rails 2: Model.find(1) gives ActiveRecord error when id 1 does not exist

基本上:如果数据库在查找记录时引发内部错误,那么 Rails 会引发错误 RecordNotFound。这并不意味着该记录不存在,这意味着 Rails 无法获取它。也许你需要看看你的数据库

关于ruby-on-rails - UsersController 中的 ActiveRecord::RecordNotFound#destroy 无法找到 'id' =11 的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40811142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com