문서 메뉴

문서 홈몽고이드

Rails 통합

이 페이지의 내용

  • 구성
  • 모델 사전 로드
  • 예외
  • 컨트롤러 런타임 계측
  • 작업 레이크

Mongoid는 Ruby on Rails 애플리케이션에 원활하게 통합됩니다. 이 페이지에서는 Rails 애플리케이션에서 자동으로 활성화되는 기능과 수동으로 활성화할 수 있는 Rails 관련 기능에 대해 설명합니다.

config.mongoid에 액세스하여 다른 Rails 환경별 옵션과 함께 application.rb 에서 Mongoid 구성 옵션을 설정할 수 있습니다. mongoid:config 생성기는 config/initializers/mongoid.rb 에 이니셜라이저를 생성하며, 이는 Mongoid 구성에도 사용할 수 있습니다. 그러나 config/mongoid.yml 에 설정된 옵션은 다른 곳에서 설정된 옵션보다 우선합니다. 가능하면 mongoid.yml 를 Mongoid 구성의 기본 위치로 사용하는 것이 좋습니다.

module MyApplication
class Application < Rails::Application
config.mongoid.logger = Logger.new(STDERR, :warn)
end
end

단일 collection 상속을 올바르게 설정하려면 Mongoid는 개발 모드에서 모든 요청 전에 모든 모델을 미리 로드해야 합니다. 속도가 느려질 수 있으므로 상속을 사용하지 않는다면 이 기능을 끄는 것이 좋습니다.

config.mongoid.preload_models = false

ActiveRecord와 마찬가지로 Mongoid는 다음과 같이 특정 예외를 잘 알려진 HTTP 상태 코드로 자동 변환하도록 Rails를 구성합니다.

Mongoid::Errors::DocumentNotFound : 404
Mongoid::Errors::Validations : 422

Mongoid는 Rails의 계측 이벤트 process_action.action_controller 에 대해 드라이버 명령 모니터링 구독을 통해 얻은 MongoDB 명령 실행에 소요된 시간을 제공합니다. 이 시간은 다음과 같이 조회 시간과 함께 기록됩니다.

Completed 200 OK in 2739ms (Views: 12.6ms | MongoDB: 0.2ms)

이 로깅은 자동으로 설정됩니다.

참고: 표시된 시간은 MongoDB cluster가 MongoDB 작업을 실행하는 데 소요된 시간에 네트워크를 통해 MongoDB로부터 명령을 보내고 결과를 수신하는 데 걸리는 시간을 합한 것입니다. 드라이버와 Mongoid가 쿼리 또는 유형 캐스트를 생성하거나 다른 방식으로 결과를 처리하는 데 걸리는 시간은 포함되지 않습니다.

Mongoid는 Rails 환경에서 사용할 때 다음과 같은 레이크 작업을 제공합니다.

  • db:create: 종속성 목적으로만 존재하며 실제로 아무 작업도 수행하지 않습니다.

  • db:create_indexes: 모델에서 모든 인덱스 정의를 읽고 데이터베이스에 생성을 시도합니다.

  • db:remove_indexes: 모델에서 모든 보조 인덱스 정의를 읽습니다.

  • db:drop: 시스템 collection을 제외하고 데이터베이스의 모든 collection을 삭제합니다.

  • db:migrate: 종속성 목적으로만 존재하며 실제로 아무 작업도 수행하지 않습니다.

  • db:purge: 인덱스를 포함한 모든 데이터를 데이터베이스에서 삭제합니다. 3.1.0부터

  • db:schema:load: 프레임워크 종속성 목적으로만 존재하며 실제로 아무 작업도 수행하지 않습니다.

  • db:seed: db/seeds.rb에서 데이터베이스를 시딩합니다.

  • db:setup: 인덱스를 생성하고 데이터베이스를 시드합니다.

  • db:test:prepare: 프레임워크 종속성 목적으로만 존재하며 실제로 아무 작업도 수행하지 않습니다.

← 구성