Well,如果您仍然可以访问已删除的记录,则可以创建一个新的副本
User.new(user.attributes_hash).save
只需使用
如果您使用了
User#destroy
方法,并且模型与dependent: :destroy
或
dependent: :delete
有关系,那么这些因记录(如果执行命令时存在)将丢失。当然,除非您对已删除/破坏记录有主动参考,即变量。
我也不知道一种方式,您可能仍然拥有外壳历史记录中的信息。 (只需向上滚动直到执行
user.delete
)。您可以手动恢复用户实例,如果您有依赖关系/关联,这会很棘手。将来:您可能需要在沙盒模式下启动控制台:
rails console -s
Edit:请查看
ArneL.的答案它显示了一种将用户保存到数据库的方法,如果对象仍然可用。那比我建议的要好得多(“手动恢复用户”)。
不幸的是,不。除非您使用的是像纸质描绘的宝石一样,却保留了您的变化历史,否则记录已经消失了。
如果您仍处于同一控制台会话中,这是您运行的最后一个命令,则可以使用以下操作:
Model.destroy_all
# if you haven't performed any other action after accidently deleting all records from Model,
# then _ would grab last response generated by Model.destroy_all
destroyed_records = _
destroyed_records.each do |destroyed_record|
Model.create(destroyed_record.attributes)
end
发现来自这里:https://gist.github.com/8parth/cb2a5555555c4f6a89b89b22aff6633e50a6c4 #file-revert_destroy_all-rb-l1