8

私は API 呼び出しに応答する Sinatra アプリケーションと、レポートやグラフや Web サイトなどのすべての要素を処理する Rails アプリケーションを持っています。どちらも共通のモデル セット (アカウント、サイトなど) にアクセスできる必要があります。

私の問題は、2 つのアプリケーション間でコードを効率的に共有するにはどうすればよいかということです。たとえば、Sinatra で Accounts モデルを編集している場合、Rails アプリで同じ変更を複製することを覚えておく必要はありません。2 つのアプリケーションが別々のクラスター上にあるため、Rails Rack マウントは使用したくありません。

StackOverflow で次の提案を見てきました。

  • Git モジュール
  • シンボリックリンク (同僚が使用している Windows では動作しません)
  • Rails プラグイン (これが Sinatra で動作するとは思えません)
  • Ruby Gems (これは単なるモデル データにはやり過ぎだと思いますが、それは私だけです)

2 つのアプリは異なるリポジトリにあります。基本的に、私は最初に API を開発し、次にアカウント固有のロジックを Rails アプリの後半に配置します (主に、Rails にはこの種の開発を容易にする多くのライブラリがあるため)。

この問題をどのように解決しますか?

4

1 に答える 1

4

私は宝石、または宝石のようなものを選びます。公開する必要はなく、Bundler git dependenciesを使用します。これは Travis CI で頻繁に行っており、特に Bundler 1.2 の新しい「ローカル」git 依存関係でうまく機能します: http://gembundler.com/man/bundle-config.1.html#LOCAL-GIT-REPOS

于 2012-09-25T00:24:08.677 に答える