两者的区别是什么
@model。销毁
和@模型。删除
例如:
Model.find_by(col: "foo").destroy_all
//and
Model.find_by(col: "foo").delete_all
我用这个或那个真的重要吗?
当您在ActiveRecord
对象上调用destroy
或destroy\u all
时,启动ActiveRecord
的“销毁”过程,它分析要删除的类,确定它应该对依赖项做什么,运行验证等。
在对象上调用delete
或delete\u all
时,ActiveRecord
仅尝试对db运行delete FROM tablename WHERE conditions
查询,不执行其他ActiveRecord
级别的任务。
只删除db中的当前对象记录,而不删除db中关联的子记录。
destroy
将从数据库中删除当前对象记录以及其关联的子记录。
它们的使用真的很重要:
如果您的多个父对象共享公共的子对象,那么在特定的父对象上调用销毁
将删除在其他多个父对象之间共享的子对象。
基本上,destroy
会对模型运行任何回调,而delete
不会。
从Rails API:
>
ActiveRecord::Persistence.delete
删除数据库中的记录,并冻结此实例,以反映不应该进行任何更改(因为它们不能持久化)。返回冻结的实例。
用记录主键上的SQLDELETE语句简单地删除该行,并且不执行回调。
要强制对象的before_destroy和after_destroy回调或任何:依赖关联选项,请使用#销毁。
ActiveRecord::Persistence.destroy
删除数据库中的记录,并冻结此实例,以反映不应该进行任何更改(因为它们不能持久化)。
有一系列与破坏相关的回调。如果before_destroy回调返回false,则取消操作并销毁返回false。有关更多详细信息,请参阅ActiveRecord::Ca回滚。
我正在构建一个基于railsguide的rails应用程序 它在erb中调用的语法是... 控制器定义 与在application.html.erb中使用“application”相关联的错误
C++20引入了“destroying”(带有标记类型),是的新重载。 这到底是什么,什么时候有用?
本文向大家介绍php清除和销毁session的方法分析,包括了php清除和销毁session的方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例分析了php清除和销毁session的方法。分享给大家供大家参考。具体分析如下: 下面的代码分别用户删除单个session值和全部session unset() 用于释放一个已经存在的session值.可以使用 session_destroy()
问题内容: 当前正在从事一个项目,在该项目中,当我们不从被破坏的示波器中清除广播订阅时,会发现大量内存泄漏。以下代码已解决此问题: 这种做法也应该用于手表吗? 下面的代码示例: 问题答案: 不,您不需要删除,因为一旦销毁范围,它们将被有效删除。 从角的源代码(v1.2.21),的方法: 因此,将清空该数组(并且将范围从范围层次结构中删除)。 无论如何,从阵列中删除都是注销功能所要做的: 因此,取消
我有一个会话范围的CDI托管bean: 在某个流之后,我需要从会话中删除这个bean,对于该流,我使用了以下代码,如下面的答案所示: 但是,它不起作用,仍然留在会话中。 我是否遗漏了什么?
销毁 Destroy 在不需要使用iScoll的时候调用iScroll实例的公共方法destroy()可以释放一些内存。 myScroll.destroy(); myScroll = null;