gpt4 book ai didi

ruby-on-rails - 使用 .destroy() 返回值检查 ActiveRecord 对象是否被销毁

转载 作者:数据小太阳 更新时间:2023-10-29 06:58:52 25 4
gpt4 key购买 nike

我正在维护某人的代码库,他们有这样的东西:

if @widget_part.destroy
flash[:message] = "Error deleting widget part"
else
flash[:message] = "Widget part destroyed successfully"
end

destroy 返回什么?这样测试可以吗?我问的原因是我尝试使用

flash[:message] = "Error deleting widget part : #{@widget_part.errors.inspect}"

而且没有错误消息,所以我很困惑。它给出了类似的东西

#<ActiveModel::Errors:0x00000103e118e8 @base=#<WidgetPart widget_id: 7, ..., 
id: 67>, @messages={}>

最佳答案

如果您不确定,可以使用destroyed? 方法。 destroy 的返回值没有记录,但它只返回卡住的销毁对象(你不能更新它)。它不返回销毁操作的状态。

虽然通常销毁对象总是会成功,但您可以监听 ActiveRecordError .例如Optimistic Locking可以在记录销毁时引发 ActiveRecord::StaleObjectError。

关于ruby-on-rails - 使用 .destroy() 返回值检查 ActiveRecord 对象是否被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646637/

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