モジュール: Mongoid::Loadable

次のドキュメントに含まれます。
Mongoid
定義:
lib/mongoid/loadable.rb

Overview

Mongoid がすべての定義されたモデルをオートロードする方法を定義します。

定数の概要の削減

DEFAULT_MODEL_PATHS =

model クラスを検索する必要があるパスのデフォルトのリスト。Rails が存在する場合は、代わりに「アプリ/models」パスが使用されます。( #model_paths を参照してください)。

%w[ ./app/models ./lib/models ].freeze
DEFAULT_Ignore_PATCH

modelをロードするときに無視するパスに一致するグローバル パターンのデフォルトリスト。デフォルトは「/models/concerns/」になります。これは Rails が model への拡張機能に使用します(および、順序以外でロードされた場合にエラーが発生します)。

詳しくは、 #ignore_pattern を参照してください。

%w[ */models/concers/* ].freeze

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

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

#files_user_path(パス)=Array=string=string===========================================================<String>

パスが 1 つある場合、 はそのパス内のすべての Ruby ファイルを返します(または、preload_models が model 名のリストである場合、はそれらの名前付きmodelのファイルのみを返します)。

パラメーター:

  • path ( string )

    検索するパス

次の値を返します。

  • <String>配列未満

    正規化されたファイル名(require_dependency または require 経由での読み込みに適しています)。



61
62
63
64
65
66
67
68
69
70
71
72
73
# ファイル 'lib/mongoid/loadable.rb', 行61

デフォルト ファイル_下_パス(path)
  ファイル = 場合 preload_models.サイズ変更可能か
            preload_models
              .map { |モデル| " " }
              .選択する { |file_name| ファイル.存在するかどうか(file_name) }
          else
            Dir.グローバル(" #{ path } /**/*.rb ")
               .拒否 { |file_name| 無視(file_name) }
          end

  # では各エントリからパスとサフィックスを削除します。
  ファイル.map { |ファイル| ファイル.gsub(%r{^#{path}/}, '').gsub(/\.rb$/, '') }
end

ファイル_の下_パス (パス) =files_users (パス) = 配列=string=string=========================================================<String>

パスのリストが指定された場合、そのパスにあるすべての Ruby ファイルを返します(または、preload_models が model 名のリストである場合、 はそれらの named model のファイルのみを返します)。

パラメーター:

  • path <String>配列未満

    検索するパスのリスト

次の値を返します。

  • <String>配列未満

    正規化されたファイル名(require_dependency または require 経由での読み込みに適しています)。



49
50
51
# ファイル 'lib/mongoid/loadable.rb', 行49

デフォルト ファイル_下_パス(path)
  path.flat_map { |path| ファイル_下_パス(path) }
end

#ignore_patternsArray<String>

指定されたパスをモデル ローダーが無視するかどうかを決定するグローバル パターンの配列を返します。

次の値を返します。

  • <String>配列未満

    無視パターンの配列



115
116
117
# ファイル 'lib/mongoid/loadable.rb', 行115

デフォルト 無視_パターン
  @ignore_pattern ||= DEFAULT_Ignore_PATCH.dup
end

#無視_パターン=(パターン)===================================

指定されたパターンの配列に無視パターンを設定します。 これらは、特定のパスをモデル ローダーによって無視するかどうかを決定するグローバル パターンです。

パラメーター:

  • pattern <String>配列未満

    グローバル パターンのリスト



132
133
134
# ファイル 'lib/mongoid/loadable.rb', 行132

デフォルト 無視_パターン=(pattern)
  @ignore_pattern = pattern
end

無視される場合(file_path) = true | false

指定されたファイルパスが無視パターンのいずれかに一致する場合は true を返します。

パラメーター:

  • file_path ( string )

    考慮するファイルパス

次の値を返します。

  • true | false

    指定されたファイルパスを無視するかどうか。



142
143
144
# ファイル 'lib/mongoid/loadable.rb', 行142

デフォルト 無視(file_path)
  無視_パターン.any? { |パターン| ファイル.fnmatch?(パターン, file_path) }
end

# load_model (file) =オブジェクト

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

modelのファイルをロードするための便利な方法。Rails の require_dependency メソッドが存在する場合は、それが使用されます。それ以外の場合は、require が使用されます。

例:

モデルをロードします。

Mongoid.load_model("/mongoid/behavior")

パラメーター:

  • ファイル ( string )

    基本ファイル名。



85
86
87
88
89
90
91
# ファイル 'lib/mongoid/loadable.rb', 行85

デフォルト load_model(ファイル)
  場合 定義済み?(require_dependency)
    require_dependency(ファイル)
  else
    が必要(ファイル)
  end
end

# load_models (paths = model_paths) =オブジェクト

モデルパスのリストを検索してすべてのモデルを取得し、それを要求することで、インデックスと継承が開発と本番の両方で同じ結果で動作します。

例:

デフォルトのモデル パスからすべてのアプリケーション モデルをロードします。

Mongoid.load_models

すべてのアプリケーションモデルを非標準のパスのセットからロードします。

Mongoid.load_models(%w( ./models ./admin/models ))

パラメーター:

  • path 配列 (デフォルトはmodel_paths )_

    モデル ファイルを参照する必要があるパスのリスト。 これらは絶対パスであるか、現在の作業ディレクトリに対する相対パスである必要があります。



31
32
33
34
35
36
37
38
39
# ファイル 'lib/mongoid/loadable.rb', 行31

デフォルト load_models(path = model_paths)
  ファイル = ファイル_下_パス(path)

  ファイル.sort. 行う |ファイル|
    load_model(ファイル)
  end

  nil
end

model_paths(モデルパス)= Array#<String>

アプリケーションのmodel定義が配置されているパスの配列を返します。Rails がロードされている場合、これはデフォルトで構成された "アプリ/model" パス(例:config.paths["app/models"])それ以外の場合は、デフォルトで "%w(./ アプリ/models ./lib/models)" になります。

これらのパスは、modelが配置されるディレクトリ階層のルートであることに注意してください。これらのルート パスが $LOAD_PATH にある限り、すべてのサブディレクトリを指定する必要はありません。

次の値を返します。

  • <String>配列未満

    モデルパスの配列



103
104
105
106
107
108
109
# ファイル 'lib/mongoid/loadable.rb', 行103

デフォルト model_paths
  @model_paths ||= 場合 定義済み?(Rails)
                     Rails.アプリケーション.config.path['app/models'].展開
                   else
                     DEFAULT_MODEL_PATHS
                   end
end

model_paths= (パス) ====================================================

指定されたパスの配列へのmodelパスを設定します。これらは、アプリケーションのmodel定義が配置されるパスです。

パラメーター:

  • path <String>配列未満

    モデルパスのリスト



123
124
125
# ファイル 'lib/mongoid/loadable.rb', 行123

デフォルト model_paths=(path)
  @model_paths = path
end