2

Rails プロジェクト用の gem を作成していますが、ジェネレーターとイニシャライザーがどのように機能するかを理解するのに苦労しました。モジュールを初期化し、gem が移行ファイルを使用して作成する必要があるテーブルに関連するモデルから、データベースからいくつかのものをロードしたいと考えています。

問題は、Railtie を作成して gem lib ディレクトリに配置した場合、ジェネレーターを実行しようとすると (たとえば、移行テンプレート ファイルを作成するため)、必要なテーブルがまだ存在しないにもかかわらず、既に Railtie を実行しようとしていることです。 (移行ファイルがまだ実行されていないため)。

Railtie の「スコープ」を制限するにはどうすればよいですか? Rails をサーバー (webrick、thin など) またはコンソールから起動するときにのみ実行したいのですが、rake タスク (ジェネレーターを含む) では実行したくありません。rake タスク (ジェネレーターなど) は Rails 環境全体をロードすると思います。私の問題はそこから来るはずです。私がやりたいことをするためのより簡単な方法はありますか?

助けやアドバイスをいただければ幸いです。

4

0 に答える 0