모듈: Mongoid::Loadable

포함 항목:
몽고이드
다음에 정의됨:
lib/mongoid/loadable.rb

개요

Mongoid가 정의된 모든 모델을 자동으로 로드하는 방법을 정의합니다.

상수 요약 접기

DEFAULT_Model_PATHS =

모델 클래스를 찾아야 하는 기본값 경로 목록입니다. Rails가 있는 경우 ' 앱/models' 경로가 대신 사용됩니다. (#model_paths 참조).

%w( ./app/models ./lib/models ).동결

인스턴스 메서드 요약 접기

인스턴스 메서드 세부 정보

#load_model(파일) ⇒ 객체

이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.

모델의 파일 을 로드하기 위한 편리한 메서드입니다. Rails의 'require_dependency' 메서드가 존재하는 경우 해당 메서드가 사용됩니다. 그렇지 않으면 'require'가 사용됩니다.

예시:

모델을 로드합니다.

Mongoid.load_model("/mongoid/behavior")

매개변수:

  • 파일 (string)

    기본 파일 이름입니다.



50
51
52
53
54
55
56
# 파일 'lib/mongoid/loadable.rb', 50줄

def load_model(파일)
  만약 정의됨?(require_dependency)
    require_dependency(파일)
  other
    require(파일)
  end
end

#load_models(paths = 모델_경로) ⇒ 객체

모델 경로 목록을 검색하여 모든 모델을 가져와서 요구하면 개발과 프로덕션 모두에서 인덱싱 과 상속이 동일한 결과를 얻도록 할 수 있습니다.

예시:

기본값 모델 경로에서 모든 애플리케이션 모델을 로드합니다.

Mongoid.load_models

비표준 경로 설정하다 에서 모든 애플리케이션 모델을 로드합니다.

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

매개변수:

  • 경로 (배열) (기본값: 모델_경로)

    모델 파일을 검색해야 하는 경로 목록입니다. 이 경로는 절대 경로이거나 현재 작업 디렉토리 에 대한 상대 경로여야 합니다.



26
27
28
29
30
31
32
33
34
35
36
37
38
# 파일 'lib/mongoid/loadable.rb', 26줄

def load_models(경로 = 모델 경로)
  경로. do |경로|
    만약 preload_models.크기 조정 가능?
      SCons를 훈련 = preload_models.map { |모델| "#{경로}/#{모델.밑줄}.rb" }
    other
      SCons를 훈련 = 디렉토리.glob("#{경로}/**/*.rb")
    end

    SCons를 훈련.sort. do |파일|
      load_model(파일.gsub(/^#{path}\// , "").gsub(/\.rb$/, ""))
    end
  end
end

#모델 경로Array<String>

애플리케이션의 모델 정의가 있는 경로 배열 을 반환합니다. Rails가 로드되면 기본적으로 구성된 ' 앱/models' 경로(예: ' config.paths`); 그렇지 않으면 기본값은 `%w(./ 앱/models ./lib/models)`입니다.

이러한 경로는 모델이 있는 디렉토리 계층 구조의 루트 입니다. 이러한 루트 경로가 '$LOAD_PATH`에 있는 한 모든 하위 디렉토리를 표시할 필요는 없습니다.

반환합니다:

  • (Array<String>)

    모델 경로 배열



68
69
70
71
72
# 파일 'lib/mongoid/loadable.rb', 68줄

def 모델 경로
  @model_paths ||= 정의됨?(Rails) ?
    Rails.애플리케이션.config.경로["앱/models"].확장 :
    DEFAULT_Model_PATHS
end

# 모델_경로=(경로) ⇒ 객체

모델 경로를 지정된 경로 배열 로 설정합니다. 이는 애플리케이션의 모델 정의가 있는 경로입니다.

매개변수:

  • 경로 (Array<String>)

    모델 경로 목록



78
79
80
# 파일 'lib/mongoid/loadable.rb', 78줄

def 모델 경로=(경로)
  @model_paths = 경로
end