モジュール: Mongoid::changeable

次による拡張機能。
ActiveSupport::Concern
次のドキュメントに含まれます。
構成可能
定義:
build/mongoid- 8.1 /lib/mongoid/changeable.rb

Overview

ダーティ追跡の動作を定義します。

名前空間で定義済み

Modules: クラスメソッド

インスタンス メソッドの概要を折りたたむ

インスタンス メソッドの詳細

#属性_Before_last_save (attri) =オブジェクト

最後に保存する前の属性の元の値を返します。

このメソッドは、コールバックで次の元の値を取得するために役立ちます

an attribute before the save that triggered the callbacks to run.

パラメーター:

  • attr シンボル | string

    属性の名前。

次の値を返します。

  • オブジェクト

    最後に保存する前の 属性の値。



144
145
146
147
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行144

デフォルト Atlas App Services(attr)
  attr = database_field_name(attr)
  analyzes_Before_last_save[attr]
end

変更された番号 =配列 <String>

ドキュメントの変更された属性を取得します。

例:

変更された属性を取得します。

model.changed

次の値を返します。

  • <String>配列未満

    変更された属性。



15
16
17
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行15

デフォルト 変更された
  Changed_attributes.キー.選択する { |attr| Atlas App Services(attr) }
end

変更された番号 = true | false

ドキュメントは変更されましたか?

例:

ドキュメントは変更されましたか?

model.changed?

次の値を返します。

  • true | false

    ドキュメントが変更された場合。



25
26
27
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行25

デフォルト 変更されたか
  変更点.values.any? { |価値| 価値 } || created_changed?
end

#changed_attributes ~ハッシュ=string, Object =

属性の変更を取得します。

例:

属性の変更を取得します。

model.changed_attributes

次の値を返します。

  • ( Hash < string 、 Object> )

    属性が変更されます。



44
45
46
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行44

デフォルト Changed_attributes
  @changed_attributes ||= {}
end

string変更 を 許可し

ドキュメントのすべての変更を取得します。

例:

すべての変更を取得します。

model.changes

次の値を返します。

  • ハッシュ < string , 配列 <Object, Object> ) はを変更します

    Hash% string 、Array_Object、Object> ] の変更。



54
55
56
57
58
59
60
61
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行54

デフォルト 変更点
  _changes = {}
  変更された. 行う |attr|
    Change = Atlas App Services(attr)
    _changes[attr] = Change 場合 Change
  end
  _changes.with_in distinct_access
end

の変更は行わないでください。 = true | false

注:

これは意図的に子のみを考慮し、子孫は考慮しません。

このドキュメントの子(埋め込みドキュメント)は変更されましたか。

次の値を返します。

  • true | false

    子が変更された場合。



34
35
36
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行34

デフォルト created_changed?
  _fielden.any?(&:変更されたか)
end

move_changes =オブジェクト

保存後にこのメソッドを呼び出すと、変更を適切に切り替えることができます。

これにより、メモリ化された子配列の設定が解除され、新しいレコード フラグが false に設定され、ドキュメントが検証済みとして設定され、ダーティ変更が移動されます。

例:

変更を以前に移動します。

person.move_changes


70
71
72
73
74
75
76
77
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行70

デフォルト move_changes
  @changes_Before_last_save = @private_changes
  @private_changes = 変更点
  @attributes_Before_last_save = @private_attributes
  @private_attributes = 属性.dup
  reset_atomic_updates!
  Changed_attributes.クリア
end

# post_persist =オブジェクト

ドキュメントが永続化された後に実行する必要があるもの。

例:

書き込み永続性を処理します。

document.post_persist


83
84
85
86
87
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行83

デフォルト post_persist
  リセット_永続化_降順
  delete_attributes_Before_type_ Cast
  move_changes
end

のstring変更は 、 、 、および

ドキュメントに対する以前の変更を取得します。

例:

以前の変更を取得します。

model.previous_changes

次の値を返します。

  • string

    Hash+ string , Array_Object, Object> ] 以前の変更。



95
96
97
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行95

デフォルト used_changes
  @private_changes ||= {}
end

#remove_change (name) =オブジェクト

ダーティ属性ハッシュから変更を削除します。 単一フィールドのアトミックアップデートによって使用されます。

例:

フラグ付きの変更を削除します。

model.remove_change(:field)

パラメーター:

  • name シンボル | string

    フィールドの名前。



106
107
108
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行106

デフォルト delete_change(name)
  Changed_attributes.削除(name.to_s)
end

#saved_change_to_attribute(attr) ⇒ Array<Object> | nil

前回の保存中に属性に対する変更を返します。

パラメーター:

  • attr シンボル | string

    属性の名前。

次の値を返します。

  • 配列<Object> | nil

    属性が変更された場合は、元の値と保存された値を含む配列を返します。それ以外の場合は nil を返します。



155
156
157
158
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行155

デフォルト saved_change_to_attribute(attr)
  attr = database_field_name(attr)
  used_changes[attr]
end

#saved_change_to_attribute?(attr, **kwargs) ⇒ true | false

この属性が最後に保存中に変更されたかどうかを返します。

このメソッドは、コールバックの変更を確認するために役立ちます

in an attribute during the save that triggered the callbacks to run.

パラメーター:

  • attr ( string )

    属性の名前。

  • **kwargs

    任意のキーワード引数。

次の値を返します。

  • true | false

    前回の保存中に属性が変更されたかどうか。



172
173
174
175
176
177
178
179
180
181
182
183
184
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行172

デフォルト saved_change_to_attribute?(attr, **kwargs)
  変更点 = saved_change_to_attribute(attr)
  return false ただし、 変更点.is_a?(配列)
  場合 kwargs.key?(:from) & & kwargs.key?(: から)
    変更点.最初に == kwargs[:from] & & 変更点.last == kwargs[: から]
  elsif kwargs.key?(:from)
    変更点.最初に == kwargs[:from]
  elsif kwargs.key?(: から)
    変更点.last == kwargs[: から]
  else
    true
  end
end

設定数:ハッシュ

変更された各フィールドのすべての新しい値を取得し、MongoDB $set 修飾子に渡します。

例:

アトミックな更新のセッターを取得します。

person = Person.new(:title => "Sir")
person.title = "Madam"
person.setters # returns { "title" => "Madam" }

次の値を返します。

  • ハッシュ

    アトミック セッターのHash



119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行119

デフォルト セッター
  修飾子 = {}
  変更点.each_pair 行う |name, 変更点|
    場合 変更点
      old, 新着情報 = 変更点
      フィールド = フィールド[name]
      キー = アトミック_attribute_name(name)
      場合 フィールド & & フィールド.サイズ変更可能か
        フィールド.add_aごとの変更(自己, name, キー, 修飾子, 新着情報, old)
      else
        修飾子[キー] = 新着情報 ただし、 アトミック_unsets.include?(キー)
      end
    end
  end
  修飾子
end

#will_save_change_to_attribute?(attr, **kwargs) ⇒ true | false

次回 を保存するときに、この属性が変更されるかどうかを返します。

このメソッドは、検証と次を決定するためのコールバックの前に役立ちます

if the next call to save will change a particular attribute.

パラメーター:

  • attr ( string )

    属性の名前。

  • **kwargs

    任意のキーワード引数。

次の値を返します。

  • true | false

    次回 を保存するときに属性が変更されるかどうか。



198
199
200
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行198

デフォルト shell_save_change_to_attribute?(attr, **kwargs)
  Atlas App Services の(attr, **kwargs)
end