所以有
record.new_record?
检查是否有新东西
我需要检查是否有东西出路。
record = some_magic
record.destroy
record.is_destroyed? # => true
这样的事情。我知道销毁会冻结对象,因此冻结吗?这类作品,但是此任务有明确的内容吗?
所以有
record.new_record?
检查是否有新东西
我需要检查是否有东西出路。
record = some_magic
record.destroy
record.is_destroyed? # => true
这样的事情。我知道销毁会冻结对象,因此冻结吗?这类作品,但是此任务有明确的内容吗?
Answers:
你可以这样做。
Record.exists?(record)
但是,这将对数据库造成不必要的损失。我知道的唯一其他解决方案是执行IV所述的回调。
attr_accessor :destroyed
after_destroy :mark_as_destroyed
def mark_as_destroyed
self.destroyed = true
end
然后检查record.destroyed
。
object.destroyed?
DEPRECATION WARNING: You are passing an instance of ActiveRecord::Base to
存在吗?. Please pass the id of the object by calling
.id.
Record.exists?
控制器规格中仍然需要,因为我无法重新加载销毁的记录来检查它是否为destroyed?
。但是,如果我有要检查的实例变量assings
,则可以使用destroyed?
。
这很快就会到来。在最新的Riding Rails帖子中,它说:
最后,它不一定与BugMash有关,但JoséValim和其他数十个提交中添加了model.destroyed?。仅当您当前正在查看的实例已成功销毁时,此精巧方法才会返回true。
所以你去了。快来了!
destroy
freeze
根据我所知,对一个对象的调用不会返回任何内容(据我所知),所以我认为这frozen?
是最好的选择。ActiveRecord::RecordNotFound
如果您做了类似的事情,您还可以从中解脱record.reload
。
我认为上述麦克的策略可能是最好的,或者,如果您想开始“做假设”,则可以为上述情况写一个包装。
干杯。