gpt4 book ai didi

mysql - 如何在 Rails 模型中构建正确的 before_destroy

转载 作者:行者123 更新时间:2023-11-29 13:29:47 24 4
gpt4 key购买 nike

我有以下内容,它删除了一个垃圾箱以及与其相关的所有内容。它很棒而且功能齐全;

型号箱

class Bin < ActiveRecord::Base

has_many :savedtweets, :dependent => :destroy
before_destroy :mod_newtweets

def mod_newtweets
Newtweet.where(:tweet_id => @bin.savedtweets.pluck(:tweet_id)).update_all(:status => 'new')
end
end

但是,它会破坏一个垃圾箱,删除所有内容,但不会运行 :mod_newtweets 来更新我的其他表及其列。

如果我将其放入 Controller 中,它就可以正常工作;

Newtweet.where(:tweet_id => @bin.savedtweets.pluck(:tweet_id)).update_all(:status => 'new')

我以为我已经把一切都做好了。

最佳答案

将您的方法替换为:

def mod_newtweets
Newtweet.where(:tweet_id => savedtweets.pluck(:tweet_id)).update_all(:status => 'new')
end

您在模型中使用了@bin.savedtweets,但尚未在任何地方定义@bin。由于它是一个实例方法,您可以使用 self.savedtweets 或仅使用 savedtweets 来调用 Bin 模型当前实例上的 savingtweets 方法。

关于mysql - 如何在 Rails 模型中构建正确的 before_destroy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19643615/

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