モジュール: Mongoid::changeable

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

Overview

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

名前空間で定義済み

Modules: クラスメソッド クラス: 何でも

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

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

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

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

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

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

パラメーター:

  • attr シンボル | string

    属性の名前。

次の値を返します。

  • オブジェクト

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



150
151
152
153
# ファイル 'lib/mongoid/changeable.rb' 行150

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

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

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

例:

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

model.changed

次の値を返します。

  • <String>配列未満

    変更された属性。



14
15
16
# ファイル 'lib/mongoid/changeable.rb' 行14

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

変更された番号 = true | false

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

例:

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

model.changed?

次の値を返します。

  • true | false

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



32
33
34
# ファイル 'lib/mongoid/changeable.rb' 行32

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

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

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

例:

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

model.changed_attributes

次の値を返します。

  • ( Hash < string 、 Object> )

    属性が変更されます。



51
52
53
# ファイル 'lib/mongoid/changeable.rb' 行51

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

string変更 を 許可し

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

例:

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

model.changes

次の値を返します。

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

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



61
62
63
64
65
66
# ファイル 'lib/mongoid/changeable.rb' 行61

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

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

注:

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

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

次の値を返します。

  • true | false

    子が変更された場合。



41
42
43
# ファイル 'lib/mongoid/changeable.rb' 行41

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

子_may_hade_changed を使用します。 = オブジェクト

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

このドキュメントの子が変更された可能性があり、ドキュメントが検証されるときにチェックする必要があることを示します。



22
23
24
# ファイル 'lib/mongoid/changeable.rb' 行22

デフォルト policies
  @画面の変更 = true
end

move_changes =オブジェクト

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

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

例:

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

person.move_changes


75
76
77
78
79
80
81
82
83
# ファイル 'lib/mongoid/changeable.rb' 行75

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

# post_persist =オブジェクト

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

例:

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

document.post_persist


89
90
91
92
93
# ファイル 'lib/mongoid/changeable.rb' 行89

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

のstring変更は 、 、 、および

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

例:

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

model.previous_changes

次の値を返します。

  • string

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



101
102
103
# ファイル 'lib/mongoid/changeable.rb' 行101

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

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

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

例:

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

model.remove_change(:field)

パラメーター:

  • name シンボル | string

    フィールドの名前。



112
113
114
# ファイル 'lib/mongoid/changeable.rb' 行112

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

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

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

パラメーター:

  • attr シンボル | string

    属性の名前。

次の値を返します。

  • 配列<Object> | nil

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



161
162
163
164
# ファイル 'lib/mongoid/changeable.rb' 行161

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

保存した_change_to_attribute? (attr, from: Utils::PLACEH older, to: Utils::PLACEH older)= true | true false

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

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

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

パラメーター:

  • attr ( string )

    属性の名前。

  • from オブジェクト (デフォルトはUtils::PLACEH older

    属性が変更されたオブジェクト(任意)。

  • 次の行動をします: オブジェクト (デフォルトはUtils::PLACEH older

    属性が に変更されたオブジェクト(任意)。

次の値を返します。

  • true | false

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



176
177
178
179
180
181
182
183
184
185
# ファイル 'lib/mongoid/changeable.rb' 行176

デフォルト saved_change_to_attribute?(attr, from: Utils::プレースホルダー, から: Utils::プレースホルダー)
  変更点 = saved_change_to_attribute(attr)
  return false ただし、 変更点.is_a?(配列)

  return true 場合 Utils.placeholder?(from) & & Utils.placeholder?(次の行動をします: )
  return 変更点.最初に == from 場合 Utils.placeholder?(次の行動をします: )
  return 変更点.last == 次の行動をします:  場合 Utils.placeholder?(from)

  変更点.最初に == from & & 変更点.last == 次の行動をします: 
end

設定数:ハッシュ

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

例:

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

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

次の値を返します。

  • ハッシュ

    アトミック セッターのHash



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# ファイル 'lib/mongoid/changeable.rb' 行125

デフォルト セッター
  修飾子 = {}
  変更点.each_pair 行う |name, 変更点|
    次へ ただし、 変更点

    old, 新着情報 = 変更点
    フィールド = フィールド[name]
    キー = アトミック_attribute_name(name)
    場合 フィールド&.サイズ変更可能か
      フィールド.add_aごとの変更(自己, name, キー, 修飾子, 新着情報, old)
    else
      修飾子[キー] = 新着情報 ただし、 アトミック_unsets.include?(キー)
    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

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



199
200
201
# ファイル 'lib/mongoid/changeable.rb' 行199

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