模块:Mongoid::Persistable::Destroyable

扩展方式:
ActiveSupport::Concern
包含在:
Mongoid::Persistable
定义于:
lib/mongoid/persistable/destroyable.rb

Overview

定义销毁文档的持久性操作的行为。

在命名空间下定义

模块: 类方法

实例方法摘要折叠

实例方法详细信息

#destroy (options = nil) ⇒ true | false

使用回调从数据库中删除文档。

例子:

销毁文档。

document.destroy

参数:

  • 选项 哈希 (默认为: nil

    选项。

选项哈希 ( options ):

  • :persist ( true | false )

    是否保留删除动作。 即使为 false,回调仍将运行。

  • :suppress ( true | false )

    删除嵌入式文档时是否在内存中更新父文档。

返回:

  • ( true | false )

    如果成功则为 true,如果失败则为 false。

引发:



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/mongoid/persistable/destroyable.rb', line 23

def 销毁(选项 = nil)
  提高 Errors::ReadonlyDocument.new(self.class) if 只读?
  self.flagged_for_destroy = true
  结果 = run_callbacks(:提交, skip_if: -> { in_transaction? }) do
    run_callbacks(:destroy) do
      if catch(:abort) { apply_destroy_dependencies! }
        删除(选项 || {}).点击 do |res|
          if res && in_transaction?
            线程化.add_modified_document(_session, self)
          end
        end
      else
        false
      end
    end
  end
  self.flagged_for_destroy = false
  结果
end

#销毁! (options = {}) ⇒ true

使用回调从数据库中删除文档。 如果未销毁文档,则会引发错误。

例子:

销毁文档。

document.destroy!

参数:

  • 选项 哈希 (默认为: {}

    选项。

选项哈希 ( options ):

  • :persist ( true | false )

    是否保留删除动作。 即使为 false,回调仍将运行。

  • :suppress ( true | false )

    删除嵌入式文档时是否在内存中更新父文档。

返回:

  • ( true )

    始终为 true。



59
60
61
# File 'lib/mongoid/persistable/destroyable.rb', line 59

def 销毁!(选项 = {})
  销毁(选项) || 提高(Errors::DocumentNotDestroyed.new(_id, self.class))
end