你如何删除一个ActiveRecord对象?

你如何删除一个ActiveRecord对象?

我看了Active Record查询 ,并没有任何删除,我可以看到。

  1. id删除,

  2. 删除当前对象,如: user.remove

  3. 你可以根据where子句删除吗?

这是destroydestroy_all方法,就像

 user.destroy User.find(15).destroy User.destroy(15) User.where(age: 20).destroy_all User.destroy_all(age: 20) 

或者,您可以使用deletedelete_all ,这将不会强制:before_destroy:after_destroycallback或任何相关的关联选项。

User.delete_all(condition: 'value')将允许您删除没有主键的logging

deletedelete_alldestroydestroy_all

文档是: 较旧的文档和Rails 3.0.0文档

delete不会实例化的对象,而destroy 。 一般来说, deletedestroy快。

  1. User.destroy

User.destroy(1)将删除id == 1用户,并且:before_destroy:after_destroycallback发生。 例如,如果你有关联的logging

 has_many :addresses, :dependent => :destroy 

用户被销毁后,他的地址也会被销毁。 如果您使用删除操作,则不会发生callback。

  1. User.destroyUser.delete

  2. User.destroy_all(<conditions>)User.delete_all(<conditions>)

注意 :用户是一个类,用户是一个实例对象