モジュール: 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

    属性の名前。

次の値を返します。

  • オブジェクト

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



141
142
143
144
# ファイル 'lib/mongoid/changeable.rb' 行141

デフォルト 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

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



24
25
26
# ファイル 'lib/mongoid/changeable.rb' 行24

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

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

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

例:

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

model.changed_attributes

次の値を返します。

  • ( Hash < string 、 Object> )

    属性が変更されます。



43
44
45
# ファイル 'lib/mongoid/changeable.rb' 行43

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

string変更 を 許可し

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

例:

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

model.changes

次の値を返します。

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

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



53
54
55
56
57
58
# ファイル 'lib/mongoid/changeable.rb' 行53

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

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

注:

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

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

次の値を返します。

  • true | false

    子が変更された場合。



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

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

move_changes =オブジェクト

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

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

例:

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

person.move_changes


67
68
69
70
71
72
73
74
# ファイル 'lib/mongoid/changeable.rb' 行67

デフォルト 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


80
81
82
83
84
# ファイル 'lib/mongoid/changeable.rb' 行80

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

のstring変更は 、 、 、および

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

例:

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

model.previous_changes

次の値を返します。

  • string

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



92
93
94
# ファイル 'lib/mongoid/changeable.rb' 行92

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

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

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

例:

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

model.remove_change(:field)

パラメーター:

  • name シンボル | string

    フィールドの名前。



103
104
105
# ファイル 'lib/mongoid/changeable.rb' 行103

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

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

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

パラメーター:

  • attr シンボル | string

    属性の名前。

次の値を返します。

  • 配列<Object> | nil

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



152
153
154
155
# ファイル 'lib/mongoid/changeable.rb' 行152

デフォルト 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

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



167
168
169
170
171
172
173
174
175
176
# ファイル 'lib/mongoid/changeable.rb' 行167

デフォルト 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



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# ファイル 'lib/mongoid/changeable.rb' 行116

デフォルト セッター
  修飾子 = {}
  変更点.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

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



190
191
192
# ファイル 'lib/mongoid/changeable.rb' 行190

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