モジュール: Mongoid::changeable
- 次による拡張機能。
- ActiveSupport::Concern
- 次のドキュメントに含まれます。
- 構成可能
- 定義:
- build/mongoid- 8.1 /lib/mongoid/changeable.rb
Overview
ダーティ追跡の動作を定義します。
名前空間で定義済み
Modules: クラスメソッド
インスタンス メソッドの概要を折りたたむ
-
#属性_Before_last_save (attri) = オブジェクト
最後に保存する前の属性の元の値を返します。
-
変更された番号 = 配列 <String>
ドキュメントの変更された属性を取得します。
-
変更された番号= true | false
ドキュメントは変更されましたか。
-
#changed_attributes ~ハッシュ=string, Object=
属性の変更を取得します。
-
変更を許可しstring 。] の変更。
ドキュメントのすべての変更を取得します。
-
の変更は行わないでください。 = true | false
このドキュメントの子(埋め込みドキュメント)が変更されたかどうか。
-
move_changes =オブジェクト
保存後にこのメソッドを呼び出すと、変更を適切に切り替えることができます。
-
# post_persist =オブジェクト
ドキュメントが永続化された後に実行する必要があるもの。
-
前の_変更点 > は、 より前の の変更を提供しstring 。
ドキュメントに対する以前の変更を取得します。
-
#remove_change (name) = オブジェクト
ダーティ属性ハッシュから変更を削除します。
-
#saved_change_to_attribute(attr) ⇒ Array<Object> | nil
前回の保存中に属性に対する変更を返します。
-
#saved_change_to_attribute?(attr, **kwargs) ⇒ true | false
この属性が最後に保存中に変更されたかどうかを返します。
-
設定数: ハッシュ
変更された各フィールドのすべての新しい値を取得し、MongoDB $set 修飾子に渡します。
-
#will_save_change_to_attribute?(attr, **kwargs) ⇒ true | false
次回 を保存するときに、この属性が変更されるかどうかを返します。
インスタンス メソッドの詳細
#属性_Before_last_save (attri) =オブジェクト
最後に保存する前の属性の元の値を返します。
このメソッドは、コールバックで次の元の値を取得するために役立ちます
an attribute before the save that triggered the callbacks to run.
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>
ドキュメントの変更された属性を取得します。
15 16 17 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行15 デフォルト 変更された Changed_attributes.キー.選択する { |attr| Atlas App Services(attr) } end |
変更された番号 = true | false
ドキュメントは変更されましたか?
25 26 27 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行25 デフォルト 変更されたか 変更点.values.any? { |価値| 価値 } || created_changed? end |
#changed_attributes ~ハッシュ=string, Object =
属性の変更を取得します。
44 45 46 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行44 デフォルト Changed_attributes @changed_attributes ||= {} end |
string変更 を 許可し 。
ドキュメントのすべての変更を取得します。
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
これは意図的に子のみを考慮し、子孫は考慮しません。
このドキュメントの子(埋め込みドキュメント)は変更されましたか。
34 35 36 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行34 デフォルト created_changed? _fielden.any?(&:変更されたか) end |
move_changes =オブジェクト
保存後にこのメソッドを呼び出すと、変更を適切に切り替えることができます。
これにより、メモリ化された子配列の設定が解除され、新しいレコード フラグが false に設定され、ドキュメントが検証済みとして設定され、ダーティ変更が移動されます。
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 =オブジェクト
ドキュメントが永続化された後に実行する必要があるもの。
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変更は 、 、 、および
ドキュメントに対する以前の変更を取得します。
95 96 97 |
ファイル 'Build/mongoid- 8.1 /lib/mongoid/changeable.rb ', 行95 デフォルト used_changes @private_changes ||= {} end |
#remove_change (name) =オブジェクト
ダーティ属性ハッシュから変更を削除します。 単一フィールドのアトミックアップデートによって使用されます。
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
前回の保存中に属性に対する変更を返します。
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.
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 修飾子に渡します。
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.
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 |