Ruby on rails 当您放下一个表时,Rails AR对象会发生什么情况?

Ruby on rails 当您放下一个表时,Rails AR对象会发生什么情况?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我知道您可以通过运行到drop_表的不可逆迁移来删除表 但是,在删除表之前,当前存在的AR记录会发生什么变化?它们被销毁了吗?是的,AR记录(ActiveRecord::Base的实例)是数据库表中一行的表示形式(除非它是尚未保存的新记录)。删除一个表会不可逆地破坏其所有内容,如果您查询数据库但该表不存在,则相关联的ActiveRecord::基类(例如:User)会抱怨这些对象在内存中。他们什么也没发生(他们甚至会告诉你他们坚持了);但是,它们引用的表和数据不再存在于数据库中,如果您尝试与数据

我知道您可以通过运行到drop_表的不可逆迁移来删除表


但是,在删除表之前,当前存在的AR记录会发生什么变化?它们被销毁了吗?

是的,AR记录(ActiveRecord::Base的实例)是数据库表中一行的表示形式(除非它是尚未保存的新记录)。删除一个表会不可逆地破坏其所有内容,如果您查询数据库但该表不存在,则相关联的ActiveRecord::基类(例如:
User
)会抱怨这些对象在内存中。他们什么也没发生(他们甚至会告诉你他们坚持了);但是,它们引用的表和数据不再存在于数据库中,如果您尝试与数据库层进行任何交互(例如保存、删除等),将导致问题。此外,“destroy”是一个rails单词,表示带回调的delete,与数据库本身无关(除了明显的delete语句)