モジュール: Mongoid::Loadable

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

Overview

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

定数の概要の削減

DEFAULT_MODEL_PATHS =

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

%w( ./app/models ./lib/models ).freeze
DEFAULT_Ignore_PATCH

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

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

%w( */models/concers/* ).freeze

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

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

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

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

パラメーター:

  • path ( string )

    検索するパス

次の値を返します。

  • <String>配列未満

    正規化されたファイル名。



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

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

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

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

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

パラメーター:

  • path <String>配列未満

    検索するパスのリスト

次の値を返します。

  • <String>配列未満

    正規化されたファイル名。



51
52
53
# ファイル 'lib/mongoid/loadable.rb', 行51

デフォルト ファイル_下_パス(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 の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

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

例:

モデルをロードします。

Mongoid.load_model("/mongoid/behavior")

パラメーター:

  • ファイル ( string )

    基本ファイル名。



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

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

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



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

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

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

  nil
end

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

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

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

次の値を返します。

  • <String>配列未満

    モデルパスの配列



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

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

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

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

パラメーター:

  • path <String>配列未満

    モデルパスのリスト



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

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