gem化する必要があるRuby on Railsアプリがあります。ジュエラーは、基本的なルビジェムの作成を支援します。しかし、Rails アプリを gem としてパッケージ化するにはどうすればよいでしょうか? Rails アプリを gem として必要とするメイン アプリがあります。メインのレールアプリは管理アプリとして使用され、小さなアプリを制御し、宝石/エンジンとして実行されるため、それらを統合することはできません。
質問する
4254 次
1 に答える
5
Rails 3.0 以降、Rails アプリはすべてエンジンです。アプリケーションを gem にラップするには、次のことを行う必要があります。
- bundler や jeweler などで新しい gem を作成します。
- アプリケーション コードを gem の lib/ ディレクトリに挿入します。
- アプリのすべてのクラスは MyGem モジュールにある必要があるため、Article => MyGem::Article のように、クラス名の前に MyGem を追加します。すべてのコントローラー、モデルなどは、モジュール GemName で名前空間を指定する必要があります。
ファイル lib/my_gem.rb には、次のコードが含まれている必要があります。
module MyGem class Engine < Rails::Engine; end end
UPD
または、マウント可能なエンジンを使用する方が良いでしょう:
$ rails plugin new MyGem
テストやgemspec用のダミーアプリでマウント可能なエンジンを生成します。
于 2012-07-16T19:05:55.157 に答える