Docs Menu
Docs Home
/ / /
Mongoid
/

Rails 統合

項目一覧

  • Overview
  • 構成
  • モデルのプリロード
  • 例外
  • 実行時間ログ
  • Rake Tasks
  • 詳細情報

このガイドでは、 Ruby on Railsアプリケーションで Mongoid を使用すると自動的に有効になる機能について学習できます。このガイドでは、アプリケーションで有効にできる Rails 関連の機能についても説明します。

config.mongoid にアクセスすると、メインのアプリケーションファイルで Mongoid 固有のオプションやその他の Rails 環境固有のオプションを構成できます。 mongoid:config ジェネレーターは config/initializers/mongoid.rbファイルに初期化子を作成します。

注意

config/mongoid.ymlファイルで設定されているオプションは、他の場所に設定されたオプションよりも優先されます。このため、可能な場合は、Mongoid 構成のデフォルトの場所として mongoid.yml を使用します。

利用可能なすべての構成オプションの詳細については、「 構成ガイド 」を参照してください。

次のコードは、config.mongoid にアクセスして Rails ロガーを作成する方法を示しています。

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

ロギング設定の詳細については、「 ログ構成ガイド 」を参照してください。

単一コレクション継承を設定するには、Mongoid は開発モードのすべてのリクエストの前にすべてのモデルをプリロードする必要があります。これによりアプリケーション が遅くなる可能性があるため、継承を使用していない場合はこの機能をオフにすることができます。

次のコードは、preload_models 機能を false に設定してプリロードをオフにする方法を示しています。

config.mongoid.preload_models = false

ActiveRecordと同様に、Mongoid は Rails を構成して、特定の例外をHTTPステータス コードに自動的に変換します。次のリストは、Mongoid 例外とHTTPコードの変換を示しています。

  • Mongoid::Errors::DocumentNotFound: に変換 404 Not Found

  • Mongoid::Errors::Validations: に変換 422 Unprocessable Content

Mongoid は、データベースコマンドの実行に費やされた時間を Rails インストリングイベントprocess_action.action_controller に出力できます。 Mongoid は、ドライバー コマンドの監視を通じてこれらの値を取得します。次の出力に示すように、アプリケーションはこの時間量を表示時間でログに記録します。

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

このログ記録は、 Railsアプリケーションで自動的に設定されます。

注意

時間計算

ログエントリに示される時間は、コマンドを送信し、 MongoDB Serverから結果を受信するのにかかる時間に加えて、 MongoDBデプロイでMongoDB操作の実行にかかる時間です。ドライバーと Mongoid によってクエリ、キャスト型、または結果の処理にかかる時間は含まれません。

Railsフレームワークを使用する場合、Mongoid では次の レイテンシ タスクを使用できます。

  • db:create_indexes: モデルからすべてのインデックス定義を読み取り、データベースにそのインデックス定義を作成しようとします

  • db:remove_indexes: 各モデルのインデックスを削除します

  • db:drop: システム コレクションを除くデータベース内のすべてのコレクションを削除します

  • db:purge: インデックスを含むすべてのデータをデータベースから削除します

  • db:seed: db/seeds.rbファイルからデータベースをシードする

  • db:setup: インデックスを作成し、データベースをシードする

次のレイテンシ タスクはフレームワーク依存関係目的でのみ存在し、アクションは実行されません。

  • db:test:prepare

  • db:schema:load

  • db:create

  • db:migrate

Mongoid を使用する新しい Railsアプリケーションの設定方法については、 クイック スタート - Ruby on Railsガイドを参照してください。

既存の Railsアプリケーションに Mongoid を追加する方法については、「 既存のガイドに Mongoid を追加する 」の「 Rails アプリケーション 」セクションを参照してください。

戻る

既存のアプリケーションに Mongoid を追加する