1

別の Ruby on Rails Web アプリケーションのモデルとデータをメイン データ ソースとして使用する Ruby アプリケーションを開発しています。

environment.rbRails モデルは、次のようにメイン ファイルにファイルを含めることで、このアプリケーションに含められました。

# Require Rails
 require_relative "../../RailsApp/config/environment.rb"

これは機能しますが、Rails Gemfile で定義された gem を使用するモデルをロードするときに、初期化されていない依存関係があります。(例:acts_as_taggable_on, rack-pjax, deviseなど)

この Ruby アプリケーションの依存関係も Bundler を介して管理されるため、現時点でアプリケーションを機能させる唯一の方法は、Rails の Gemfile の内容を Ruby アプリの Gemfile にコピー アンド ペーストすることです。

gem の要件が重複しているため、明らかにこのアプローチは最適ではありません。

Rails とそのモデルが別のアプリケーションで必要とする依存関係を含めるためのより良い方法はありますか? Gemfile を別の Gemfile に含める方法はありますか?

4

2 に答える 2

6

簡単にするためにいくつかのオプションがあります

  1. すべてを 1 つのアプリにまとめるだけで、多くのことが簡単になります
  2. プラグインを使用して共通コードを共有する
  3. Web サービスを使用してデータを共有する
于 2012-06-12T20:53:36.800 に答える
3

RailsAppA からモデルとコードを抽出して Gem にすることができます。次に、RailsAppA はその Gem をインクルードして使用します。

gem はプライベート リポジトリに残すことができ、公開する必要はありません。

両方のアプリは、次のようなことを行います。

gem "yourapp-modelage", git: "http://github.com/you/yourapp-modelage.git"

次に、App2 もその Gem を使用します... Gem にどれだけ入るかは、再利用する必要がある量によって異なります。

于 2012-06-12T20:55:50.290 に答える