gpt4 book ai didi

ruby-on-rails - 如何在 Rails 中预览 delete_all 或 destroy_all 查询

转载 作者:行者123 更新时间:2023-12-04 12:35:16 25 4
gpt4 key购买 nike

你知道这个练习:一些无效的数据在生产数据库中弹出,你必须摆脱它。您在生产服务器上启动 Rails 控制台并输入查询:

Foo.where(bar: 'baz').all

您查看返回的数据,这是您需要删除的数据。然后你输入:
Foo.where(bar: 'baz').destroy_all

你的心脏会停顿一秒钟。您只想在运行之前查看查询。

有没有办法在Rails中做到这一点?我正在寻找一种类似于
Foo.where(bar: 'baz').to_sql

但会返回 的那个删除 询问。

最佳答案

问题是 destroy_all 不运行单个 SQL 查询。它遍历对象的散列,实例化它们,运行它们的回调,然后调用该对象的 destroy 方法。 Rails 没有内置的方式来生成这些查询的数组。

Cdesroisiers 是正确的,您可以在沙箱模式下测试查询,但真正的问题是,即使您已经验证了目标数据,您还是在猜测您运行 delete_all 的决定。

考虑使用像 PaperTrail 这样的 ActiveRecord 版本控制 gem如果您不愿意信任 ActiveRecord 来正确删除对象。

关于ruby-on-rails - 如何在 Rails 中预览 delete_all 或 destroy_all 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10936294/

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