你如何删除一个ActiveRecord对象?你如何删除一个ActiveRecord对象?
我看着Active Record Querying它没有任何东西可以删除,我可以看到。
通过
id
删除,删除当前对象,如:
user.remove
,可以删除根据
where
条款?
你如何删除一个ActiveRecord对象?你如何删除一个ActiveRecord对象?
我看着Active Record Querying它没有任何东西可以删除,我可以看到。
通过id
删除,
删除当前对象,如:user.remove
,
可以删除根据where
条款?
这是destroy
和destroy_all
方法,如
user.destroy
User.find(15).destroy
User.destroy(15)
User.where(age: 20).destroy_all
User.destroy_all(age: 20)
或者您可以使用delete
和delete_all
,不会强制执行:before_destroy
和:after_destroy
回调或任何相关的关联选项。
User.delete_all(condition: 'value')
将允许你删除记录 没有主键
User.destroy
User.destroy(1)
将删除用户与发生id == 1
和:before_destroy
和:after_destroy
回调。例如,如果您有关联的记录
has_many :addresses, :dependent => :destroy
用户被销毁后,他的地址也会被销毁。 如果您使用删除操作,则不会发生回调。
User.destroy
,User.delete
User.destroy_all(<conditions>)
或User.delete_all(<conditions>)
通知:用户是一类与用户是一个实例对象
感谢您解决相关记录。 – 2012-11-14 15:26:07
注意:'User.destroy_all()'运行回调函数,所以在它删除任何东西之前,它会加载记录。这是两个SQL语句不是一个。除了性能影响外,这也具有并发性影响。更安全的呼叫跳过回调; 'User.delete_all()'只会发出一个'DELETE FROM ...'命令。 – 2015-11-11 01:48:38
有delete
,delete_all
,destroy
和destroy_all
。
的文档是:older docs和Rails 3.0.0 docs
delete
不实例化对象,而destroy
一样。通常,delete
比destroy
快。
'delete'速度更快,但会绕过您可能在模型上定义的回调 – Rudi 2015-10-17 19:39:56
如果用户模型没有主键,则user.destroy不起作用 – hammady 2013-10-24 11:06:04
它应该是'User.destroy'。 – Chinmay235 2016-05-05 07:21:02
它适合我!,谢谢! – 2016-05-13 06:19:27