모듈: Mongoid::Config

확장자:
Forwardable, Config, Defaults, Encryption, Options
다음을 포함합니다.
DeprecatedOptions
포함 항목:
Config
다음에 정의됨:
lib/mongoid/config.rb,
lib/mongoid/config/options.rb,
lib/mongoid/config/defaults.rb,
lib/mongoid/config/ 암호화.rb,
lib/mongoid/config/environment.rb,
lib/mongoid/config/validators/ 클라이언트.rb,
lib/mongoid/config/validators/option.rb,
lib/mongoid/config/validators/async_query_executor.rb

개요

이 모듈은 데이터베이스 연결을 포함하여 Mongoid에 대한 모든 구성 옵션을 정의합니다.

네임스페이스 아래에 정의됨

모듈: Defaults, DeprecatedOptions, Encryption, Environment, Options, Validators

상수 요약 접기

LOCK =
뮤텍스.신규
VALID_ISOLATION_LEVELS =
%i[ Rails 스레드 파이버 ].동결

DeprecatedOptions에 포함된 상수

DeprecatedOptions::OPTIONS

인스턴스 메서드 요약 접기

옵션에 포함된 메서드

기본값, log_level, 옵션, 재설정, 설정

기본값에 포함된 메서드

load_defaults

암호화에 포함된 메서드

encryption_schema_map

DeprecatedOptions에 포함된 메서드

앞에 추가

인스턴스 메서드 세부 정보

#클라이언트해시

클라이언트 구성 또는 빈 해시를 가져옵니다.

예시:

클라이언트 구성을 가져옵니다.

config.clients

반환합니다:

  • (해시)

    클라이언트 구성.



482
483
484
# 파일 'lib/mongoid/config.rb', 482줄

def 클라이언트
  @clients ||= {}
end

#configself

구성 DSL에 사용할 구성 싱글톤을 반환합니다.

반환합니다:

  • (self)

    구성 싱글톤.



300
301
302
# 파일 'lib/mongoid/config.rb', 300줄

def config
  self
end

#구성되었나요?true | false

Mongoid가 구성되었나요? 이는 하나 이상의 유효한 클라이언트 구성이 있는지 확인하는 것입니다.

예시:

Mongoid가 구성되어 있나요?

config.configured?

반환합니다:

  • (true | false)

    Mongoid가 구성된 경우.



311
312
313
# 파일 'lib/mongoid/config.rb', 311줄

def 구성?
  클라이언트.키?(:default)
end

#connect_to(name, options = { read: { 모드:: 프라이머리 } }) ⇒ 객체

참고:

편의를 위해 개발 또는 테스트 환경에서만 사용하세요.

기본값 클라이언트 에서 제공된 데이터베이스 이름에 연결합니다.

예시:

연결할 데이터베이스 를 설정합니다.

config.connect_to("mongoid_test")

매개변수:

  • 이름 (string)

    데이터베이스 이름입니다.



323
324
325
326
327
328
329
330
331
# 파일 'lib/mongoid/config.rb', 323줄

def connect_to(이름, 옵션 = { 읽기: { 모드: :primary } })
  self.클라이언트 = {
    기본값: {
      database: 이름,
      호스트: [ 'localhost:27017' ],
      옵션: 옵션
    }
  }
end

#deregister_model(klass) ⇒ 객체

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

Mongoid를 사용하여 애플리케이션 에서 모델을 등록 취소합니다.

매개변수:

  • class (클래스)

    등록을 취소할 모델입니다.



390
391
392
393
394
# 파일 'lib/mongoid/config.rb', 390줄

def deregister_model(class)
  잠금.동기화 do
    모델.삭제(class)
  end
end

#destructive_fieldsArray<String>

Mongoid::Document에 정의된 경우 파괴적인 일을 일으킬 수 있는 필드 이름을 반환합니다.

예시:

파괴적인 필드를 가져옵니다.

config.destructive_fields

반환합니다:

  • (Array<String>)

    잘못된 필드 이름의 배열 입니다.



340
341
342
# 파일 'lib/mongoid/config.rb', 340줄

def destructive_fields
  컴포저블.금지된_메서드
end

#로드!(경로, 환경 = nil) ⇒ 객체

호환되는 mongoid.yml 파일 에서 설정을 로드합니다. 이는 Rails 이외의 프레임워크로 쉽게 설정 하는 데 사용할 수 있습니다.

예시:

Mongoid를 구성합니다.

Mongoid.load!("/path/to/mongoid.yml")

매개변수:

  • 경로 (string)

    파일 의 경로입니다.

  • 환경 (string | 기호) (기본값: nil)

    로드할 환경입니다.



352
353
354
355
356
357
358
359
360
# 파일 'lib/mongoid/config.rb', 352줄

def 로드!(경로, 환경 = nil)
  설정 = 환경.load_yaml(경로, 환경)
  만약 설정.현재?
    클라이언트.연결 해제
    클라이언트.지우기
    load_configuration(설정)
  end
  설정
end

#load_configuration(settings) ⇒ 객체

설정 해시에서 모든 구성을 로드합니다.

예시:

구성을 로드합니다.

config.load_configuration(settings)

매개변수:

  • 설정 (해시)

    구성 설정.



402
403
404
405
406
407
408
# 파일 'lib/mongoid/config.rb', 402줄

def load_configuration(설정)
  구성 = 설정.with_in Different_access
  self.옵션 = 구성[:options]
  self.클라이언트 = 구성[:clients]
  mongo.옵션 = 구성[:driver_options] || {}
  set_log_levels
end

#modelsArray<Class>

애플리케이션 의 모든 모델 가져오기 - 여기에는 Mongoid::Document가 포함된 모든 것이 포함됩니다.

예시:

모든 모델을 가져옵니다.

config.models

반환합니다:

  • (Array<Class>)

    애플리케이션 의 모든 모델입니다.



369
370
371
# 파일 'lib/mongoid/config.rb', 369줄

def 모델
  @models ||= []
end

#options=(options) ⇒ 객체

구성 옵션을 설정합니다. 각각 개별적으로 유효성을 검사합니다.

예시:

옵션을 설정합니다.

config.options = { raise_not_found_error: true }

매개변수:

  • 옵션 (해시)

    구성 옵션입니다.



466
467
468
469
470
471
472
473
474
# 파일 'lib/mongoid/config.rb', 466줄

def options=(옵션)
  반환 하지 않는 한 옵션

  유효성 검사기::AsyncQueryExecutor.유효성 검사(옵션)
  옵션.각각의 쌍 do |옵션, value|
    유효성 검사기::옵션.유효성 검사(옵션)
    send("#{option}=", value)
  end
end

#override_client(name) ⇒ string | 기호

클라이언트 를 재정의하여 전역적으로 사용합니다.

예시:

클라이언트 를 전역으로 재정의합니다.

config.override_client(:optional)

매개변수:

  • 이름 (string | 기호)

    클라이언트의 이름입니다.

반환합니다:

  • (string | 기호)

    전역 재정의입니다.



430
431
432
# 파일 'lib/mongoid/config.rb', 430줄

def Override_client(이름)
  스레드.client_override = 이름 ? 이름.to_s : nil
end

#Override_database(이름) ⇒ string | 기호

전역적으로 사용하려면 데이터베이스 를 재정의합니다.

예시:

데이터베이스 전역으로 재정의합니다.

config.override_database(:optional)

매개변수:

  • 이름 (string | 기호)

    데이터베이스의 이름입니다.

반환합니다:

  • (string | 기호)

    전역 재정의입니다.



418
419
420
# 파일 'lib/mongoid/config.rb', 418줄

def override_database(이름)
  스레드.database_override = 이름
end

#퍼지!true

참고:

이는 모든 데이터를 삭제하는 가장 빠른 방법입니다.

인덱스를 포함한 모든 컬렉션의 모든 데이터를 제거합니다.

예시:

모든 데이터를 삭제합니다.

Mongoid::Config.purge!

반환합니다:

  • (true)

    true.



442
443
444
# 파일 'lib/mongoid/config.rb', 442줄

def 퍼지!
  global_client.database.collections.(&:drop) 개인정보 정책에 true
end

#real_isolation_level객체

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

Mongoid가 내부 상태 저장 데 사용할 (역참조 가능성이 있는) 격리 수준을 반환합니다. isolation_level:rails로 설정하다 하면 현재 Rails가 사용하도록 구성된 격리 수준(ActiveSupport::IsolatedExecutionState.isolation_level)이 반환됩니다.

ActiveSupport::IsolatedExecutionState를 지원 하지 않는 이전 버전의 Rails를 사용하는 경우 대신 :thread 를 반환합니다.



172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# 파일 'lib/mongoid/config.rb', 172줄

def real_isolation_level
  반환 격리 수준 하지 않는 한 격리 수준 == : Rails

  만약 정의됨?(ActiveSupport::IsolatedExecutionState)
    ActiveSupport::IsolatedExecutionState.격리 수준. do |레벨|
      # Rails가 항상 동일한 기능을 지원 한다고 보장할 수는 없습니다.
      # 격리 수준이 Mongoid이므로 여기에서 확인합니다.
      # 작업할 수 있는 기능입니다.
      validate_isolation_level!(레벨)
    end
  other
    # Rails가 IsolatedExecutionState를 지원 하지 않는 경우 기본값
    :thread
  end
end

#register_model(klass) ⇒ Object

Mongoid를 사용하여 애플리케이션 에 모델을 등록합니다.

예시:

모델을 등록합니다.

config.register_model(Band)

매개변수:

  • class (클래스)

    등록할 모델입니다.



379
380
381
382
383
# 파일 'lib/mongoid/config.rb', 379줄

def Register_model(class)
  잠금.동기화 do
    모델.push(class) 하지 않는 한 모델.포함?(class)
  end
end

#Running_with_passenger?true | false

더 이상 사용되지 않습니다.

애플리케이션 이 Passenger로 실행 되고 있나요?

예시:

애플리케이션에서 승객을 사용하고 있나요?

config.running_with_passenger?

반환합니다:

  • (true | false)

    앱 이 Passenger에 배포된 경우.



504
505
506
# 파일 'lib/mongoid/config.rb', 504줄

def Running_with_passenger?
  @running_with_passenger ||= 정의됨?(PherationPassenger)
end

#time_zoneString

사용할 표준 구역 를 가져옵니다.

예시:

구역 를 가져옵니다.

Config.time_zone

반환합니다:

  • (string)

    표준 구역.



492
493
494
# 파일 'lib/mongoid/config.rb', 492줄

def time_zone
  use_utc? ? 'UTC' : ::시간.영역
end

#잘라내기!true

참고:

이는 퍼지보다 느립니다!

모든 컬렉션의 모든 데이터를 자르고 인덱스는 자르지 않습니다.

예시:

모든 컬렉션 데이터를 잘라냅니다.

Mongoid::Config.truncate!

반환합니다:

  • (true)

    true.



454
455
456
457
458
# 파일 'lib/mongoid/config.rb', 454줄

def 잘라내기!
  global_client.database.collections. do |컬렉션|
    컬렉션.찾기.delete_many
  end 개인정보 정책에 true
end

#validate_isolation_level!(레벨) ⇒ 객체

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

제공된 격리 수준이 Mongoid가 지원하는 격리 수준인지 확인합니다. 그렇지 않은 경우 Error::UnsupportedIsolationLevel을 발생시킵니다.

격리 수준이 :fiber 으로 설정하다 있고 Ruby 버전이 3.2 미만인 경우에도 이전 Ruby 버전에서는 파이버 로컬 저장 지원되지 않기 때문에 오류가 발생합니다.

다음을 발생시킵니다.



196
197
198
199
200
201
202
# 파일 'lib/mongoid/config.rb', 196줄

def validate_isolation_level!(레벨)
  올리다 오류::UnsupportedIsolationLevel.신규(레벨) 하지 않는 한 VALID_ISOLATION_LEVELS.포함?(레벨)

  반환 하지 않는 한 레벨 == :파이버 && RUBY_VERSION < '3.2'

  올리다 오류::UnsupportedIsolationLevel.신규(레벨)
end