モジュール: Mongoid::Tlasable::Classメソッドs
- 定義:
- lib/mongoid/trazerable.rb
Overview
トラバース可能な動作のクラスレベルのメソッド。
インスタンス メソッドの概要を折りたたむ
-
#継承= true | false
ドキュメントが別のドキュメントのサブクラスであるかどうかを判断します。
-
継承された# サブクラス = オブジェクト
継承するときは、親クラスからフィールドをコピーし、子クラスの を起動するように設定して、Rails Edge で非推奨となった古い Class_inheritable_accessor の動作をエミュレートします。
-
# root_Class ~ Mongoid::Document
現在のクラスが参加している STIG ツリーのルートクラスを返します。
インスタンス メソッドの詳細
#継承 = true | false
ドキュメントが別のドキュメントのサブクラスであるかどうかを判断します。
43 44 45 |
# ファイル 'lib/mongoid/traaverable.rb' 行43 デフォルト 継承 !!(スーパークラス < Mongoid::ドキュメント) end |
継承された# サブクラス =オブジェクト
継承するときは、親クラスからフィールドをコピーし、子クラスの を起動するように設定して、Rails Edge で非推奨となった古い Class_inheritable_accessor の動作をエミュレートします。
rust メトリクス/ABCSize
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# ファイル 'lib/mongoid/traaverable.rb' 行69 デフォルト 継承された(サブクラス) スーパー # リゾルバ サブシステムに新しいサブクラスを登録する Mongoid::ModelResolver.Register(サブクラス) @_type = nil サブクラス.analyzed_fields = analyzed_fields.dup サブクラス.localized_fields = localized_fields.dup サブクラス.フィールド = フィールド.dup サブクラス.pre_processed_defaults = pre_processed_defaults.dup サブクラス.post_processed_defaults = post_processed_defaults.dup サブクラス._develed_scopes = ハッシュ.新着情報 { |_hash, キー| _develed_scopes[キー] } サブクラス.弁別子_値 = サブクラス.name 弁別子_値メソッドは次のとおりであるため、ここでこれを行う必要があります。 上記のサブクラス で がオーバーライドされた場合を考えてみましょう。 サブクラス.次を含みます: DiscriminatorRetrieval # 継承が有効な場合は _type フィールドのみが必要ですが、次が必要です : 下位互換性のためにルート クラス にも を追加します。 return 場合 フィールド.key?(弁別子_キー) default_proc = -> { 自己.クラス.弁別子_値 } フィールド(弁別子_キー, デフォルト: default_proc, type: 文字列) end |