Rails 統合
Overview
このガイドでは、 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 によってクエリ、キャスト型、または結果の処理にかかる時間は含まれません。
Rake Tasks
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 アプリケーション 」セクションを参照してください。