我有一种情况,我有一个已在数据库中删除的 ruby 模型。该对象仍然存在于内存中。我想要一种方法来检查数据库中的对象是否仍然存在。
如果我调试代码并在断点处停止,我可以通过 sql 查询和 irb 查看数据库中的对象。但是,在调试器中,我可以评估表达式并尝试过:
car.reload
Car.find(car.id)
Car.where(id: car.id)
所有这些都返回一辆不存在的汽车。
我也在尝试使用 ActiveModel::Dirty 并在调试器中尝试了这个:
car.changed?
这返回错误。
TLDNR:调试器中的所有标志都指向它存在。Db 说它不存在。
我已经用尽了调试器处于错误状态的选项。我 1000% 确信问题出在内存对象与数据库对象之间。
如何从代码中获取对象的真实状态?