モジュール: Mongoid::Attributes

次による拡張機能。
ActiveSupport::Concern
次のことが含まれます。
ネストされたプロセシング読み取り専用
次のドキュメントに含まれます。
構成可能
定義:
lib/mongoid/attributes.rb
lib/mongoid/attributes/ Nested.rb、
lib/mongoid/attributes/dynamec.rb、
lib/mongoid/attributes/ embedded.rb、
lib/mongoid/attributes/readonly.rb、
lib/mongoid/attributes/projector.rb、
lib/mongoid/attributes/processing.rb

Overview

このモジュールには、内部属性ハッシュを処理するためのロジックと、値を取得して設定する方法が含まれています。

名前空間で定義済み

Modules: クラスメソッド動的埋め込みネストされたプロセシング読み取り専用クラス:プロジェクション

インスタンス属性の概要を折りたたむ

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

読み取り専用から含まれるメソッド

#attribute_writeable?

Processingに含まれるメソッド

#process_attributes

インスタンス属性の詳細

#属性=オブジェクト(読み取り専用) 。別名: raw_attributes

属性の値を返します。



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

デフォルト 属性
  @attributes
end

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

# assign_attributes (atlas = nil) =オブジェクト

:as オプションを使用して、属性名(これも列名と一致する)とロール名と一致するキーを持つ属性のハッシュを渡すことで、特定の一括割り当てセキュリティ ロールのすべての属性を設定できます。 一括割り当てセキュリティをバイパスするには、 : without_processing => true オプションを使用できます。

例:

属性を割り当てます。

person.assign_attributes(:title => "Mr.")

属性(ロール)を割り当てます。

person.assign_attributes({ :title => "Mr." }, :as => :admin)

パラメーター:

  • attrs ハッシュ (デフォルトはnil

    設定する新しい属性。



218
219
220
221
222
# ファイル 'lib/mongoid/attributes.rb' 行218

デフォルト assign_attributes(attrs = nil)
  _assigning 行う
    process_attributes(attrs)
  end
end

Atlasの サンプル データ セット からの映画データを含むコレクションを使用します。 (name) = true | false

欠落しているフィールドを含むデータベースからドキュメントをロードするため、属性がドキュメントに欠落しているかどうかを判断します。

例:

属性が欠落しているかどうか。

document.attribute_missing?("test")

パラメーター:

  • name ( string )

    属性の名前。

次の値を返します。

  • true | false

    属性がない場合。



249
250
251
# ファイル 'lib/mongoid/attributes.rb' 行249

デフォルト Atlas App Services の(name)
  !プロジェクション.新着情報(__selected_fields).属性_or_path_allowed?(name)
end

属性_存在(name) = true | false

属性が存在するかどうかを判断します。

例:

属性は存在するか?

person.attribute_present?("title")

パラメーター:

  • name ( string | Symbol )

    属性の名前。

次の値を返します。

  • true | false

    存在する場合は true、存在しない場合は false。



33
34
35
36
37
38
# ファイル 'lib/mongoid/attributes.rb' 行33

デフォルト Atlas App Services(name)
  属性 = read_raw_attribute(name)
  !属性.blank? || 属性 == false
ヘルプ Mongoid::Errors::AttributeNotLoaded
  false
end

#Atlas App Services のハッシュ値

キャストされていない属性を取得します。

例:

型キャストされる前に属性を取得します。

document.attributes_before_type_cast

次の値を返します。

  • ハッシュ

    キャストされていない属性。



46
47
48
# ファイル 'lib/mongoid/attributes.rb' 行46

デフォルト Atlas App Services
  @attributes_Before_type_ Cast ||= {}
end

# has_attribute? (name) = true | false

ドキュメントに指定された属性があるかどうか

例:

ドキュメントに 属性はありますか。

model.has_attribute?(:name)

パラメーター:

  • name ( string | Symbol )

    属性の名前。

次の値を返します。

  • true | false

    キーが属性に存在する場合。



58
59
60
# ファイル 'lib/mongoid/attributes.rb' 行58

デフォルト has_attribute?(name)
  属性.key?(name.to_s)
end

has_attribute_Before_type_ Cast は? (name) = true | false

ドキュメントには、割り当てられる前に指定された属性があり、型がキャストされているかどうかは?

例:

割り当てられる前に、ドキュメントに 属性があったかどうか

model.has_attribute_before_type_cast?(:name)

パラメーター:

  • name ( string | Symbol )

    属性の名前。

次の値を返します。

  • true | false

    キーが 属性_Before_type_ Cast に存在する場合。



72
73
74
# ファイル 'lib/mongoid/attributes.rb' 行72

デフォルト has_attribute_from(name)
  Atlas App Services.key?(name.to_s)
end

#process_raw_attribute (name,raw,field) =================================

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

ドキュメント属性からのみ読み取られた未加工の属性値を処理します。

パラメーター:

  • name ( string )

    取得する属性の名前。

  • オブジェクト

    未加工の属性値。

  • フィールド (フィールド | nil )

    デーモン化または nil に使用するフィールド。

次の値を返します。

  • オブジェクト

    属性の値。



105
106
107
108
109
# ファイル 'lib/mongoid/attributes.rb' 行105

デフォルト process_raw_attribute(name, , フィールド)
  価値 = フィールド ? フィールド.mongoize() : 
  Atlas の 変更点(name) 場合 価値.サイズ変更可能か
  価値
end

# read_attribute (name) =オブジェクト別名: []

ドキュメント属性から値を読み取ります。 値が存在しない場合は、nil が返されます。

例:

属性を読み取ります。

person.read_attribute(:title)

属性を読みとります(代替構文)。

person[:title]

パラメーター:

  • name ( string | Symbol )

    取得する属性の名前。

次の値を返します。

  • オブジェクト

    属性の値。



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

デフォルト read_attribute(name)
  フィールド = フィールド[name.to_s]
   = read_raw_attribute(name)
  process_raw_attribute(name.to_s, , フィールド)
end

# read_attribute_confirm

型キャストされる前に、属性から値を読み取ります。 値がまだ割り当てられていない場合は、read_raw_attribute を使用して属性の既存の値が返されます。

例:

型キャストの前に属性を読み取る。

person.read_attribute_before_type_cast(:price)

パラメーター:

  • name ( string | Symbol )

    取得する属性の名前。

次の値を返します。

  • オブジェクト

    タイプキャストされる前の属性の値(使用可能な場合)。 それ以外の場合、属性の値。



122
123
124
125
126
127
128
129
# ファイル 'lib/mongoid/attributes.rb' 行122

デフォルト read_attribute_Before_type_ Cast(name)
  attr = name.to_s
  場合 Atlas App Services.key?(attr)
    Atlas App Services[attr]
  else
    read_raw_attribute(attr)
  end
end

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

Document属性から値を削除します。 値が存在しない場合は、正常に失敗します。

例:

属性を削除します。

person.remove_attribute(:title)

パラメーター:

  • name ( string | Symbol )

    削除する属性の名前。

次の値が発生します。

  • エラー::ReadonlyAttribute

    読み取りフラグが付けられているためにフィールドを削除できない場合。



141
142
143
144
145
146
147
148
149
150
# ファイル 'lib/mongoid/attributes.rb' 行141

デフォルト delete_attribute(name)
  validate_writeable_field_name。(name.to_s)
  as_writeable_attribute。(name) 行う |アクセス権|
    _assigning 行う
      Atlas の 変更点(アクセス権)
      Delay_アトミック_unsets[アトミック_attribute_name(アクセス権)] = [] ただし、 new_record?
      属性.削除(アクセス権)
    end
  end
end

#typed_attributes =オブジェクト

型変換された属性を返します。

例:

タイプキャスト属性。

document.typed_attributes

次の値を返します。

  • オブジェクト

    タイプ キャストされた属性のキーと値を持つハッシュ。



259
260
261
# ファイル 'lib/mongoid/attributes.rb' 行259

デフォルト typed_attributes
  Atlas App Services.map { |name| [name, 送信(name)] }.to_h
end

#write_attribute (name, value) =オブジェクトとも呼ばれます: []=

ドキュメント属性ハッシュに単一の属性を書込み (write) ます。 これにより、前後でアップデート コールバックも起動され、必要なタイプキャスティングが実行されます。

例:

属性を書き込みます。

person.write_attribute(:title, "Mr.")

属性を書込み (write)(代替構文)

person[:title] = "Mr."

パラメーター:

  • name ( string | Symbol )

    更新する属性の名前。

  • 価値 オブジェクト

    属性に設定する値。



164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
# ファイル 'lib/mongoid/attributes.rb' 行164

デフォルト write_attribute(name, 価値)
  validate_writeable_field_name。(name.to_s)

  field_name = database_field_name(name)

  場合 Atlas App Services の(field_name)
    発生 Mongoid::Errors::AttributeNotLoaded.新着情報(自己.クラス, field_name)
  end

  場合 Atlas App Services(field_name)
    _assigning 行う
      localized = フィールド[field_name].試す(:localized?)
      Atlas App Services[name.to_s] = 価値
      typed_value = typed_value_for(field_name, 価値)
      ただし、 属性[field_name] == typed_value || Atlas App Services の(field_name)
        Atlas の 変更点(field_name)
      end
      場合 localized
        exist = フィールド[field_name].試す(:localize_current?)
        local_key, local_val = typed_value.最初に
        場合 exist & & local_val.blank?
          属性[field_name]&.削除(local_key)
        else
          属性[field_name] ||= {}
          属性[field_name].mergeします。(typed_value)
        end
      else
        属性[field_name] = typed_value
      end

      属性を書き込むときは、アンセットからそれを削除する
      を削除してから書込みを実行しても削除は発生しません。
      Delay_アトミック_unsets.削除(field_name)

      typed_value
    end
  else
    # TODO: MONGOID-5072
  end
end

#write_attributes (attrs = nil) =オブジェクトは別名:属性=

指定された属性ハッシュをドキュメントに書込みます。 これにより、既存の属性が新しいHashに存在する場合のみ上書きされ、他のすべての属性が保持されます。

例:

属性を書き込みます。

person.write_attributes(:title => "Mr.")

属性を書込み (write)(代替構文)

person.attributes = { :title => "Mr." }

パラメーター:

  • attrs ハッシュ (デフォルトはnil

    設定する新しい属性。



235
236
237
# ファイル 'lib/mongoid/attributes.rb' 行235

デフォルト write_attributes(attrs = nil)
  assign_attributes(attrs)
end