如何在Rails中预览delete_all或destroy_all查询

Dam*_*kić 7 activerecord ruby-on-rails arel

您知道演练:生产数据库中会弹出一些无效数据,您必须将其删除.您在生产服务器上启动Rails控制台并键入查询:

Foo.where(bar: 'baz').all
Run Code Online (Sandbox Code Playgroud)

您查看返回的数据,这是您需要删除的内容.然后键入:

Foo.where(bar: 'baz').destroy_all
Run Code Online (Sandbox Code Playgroud)

你的心停了一秒钟.您只想在运行之前查看查询.

在Rails中有没有办法做到这一点?我正在寻找类似的方法

Foo.where(bar: 'baz').to_sql
Run Code Online (Sandbox Code Playgroud)

但是将返回DELETE查询的那个.

cde*_*ers 2

我突然想到,您可以在沙箱模式下运行控制台并运行删除查询来查看 sql。这些更改只会在退出时回滚。