2011-02-02 11 views
1

私はこれを達成するために存在しているあなたは、いくつかの方法を考え何を思ったんだけど:共有ファイル共有ビュー3つのアプリケーション

  • ため

    1. 使用シンボリックリンクは宝石/プラグインそれを作成します。共有ファイルとコード

    2. キャッシュ内のビュー/パーシャル必要なアプリから格納それを引っ張るWebサービスを作成し提供し

    私の目的は、大規模なアプリケーションの複雑さを軽減することです。オンラインコミュニティを構築したいとします.1つのアプリでフォーラムを扱い、もう1つのアプリでユーザーギャラリーなどを扱い、ユーザー中心の管理と他のアプリに共通のビューを提供する中央管理を行います。

    したがって、マスターアプリケーションは共通のレイアウトとウィジェットを他のすべてに提供する必要があり、各アプリはマスターアプリにもいくつかのビューを提供する必要があります。

    たとえば、レイアウトには各アプリのアイテムがあるメインメニューがあり、各アイテムには大きすぎるサブメニューがあるため、ラベルとURLのペアの単純なリストを持つことはできません。

    おそらく、マスターアプリケーションは、個々の子アプリにプライベートAPIを介してメニュー項目とコンテンツを提供し、メニューをビルドし、キャッシュに出力を保存し、尋ねられたら各アプリにフルメニューを送信するように要求します。

    ご覧のとおり、私はすでにオプション3に傾いていますが、私のアプローチについてはフィードバックがほしいと思っています。

    ありがとうございます。

  • 答えて

    1

    本当にあなたが1つのRailsアプリケーションを使用しているように思えます。ビューの相互依存性は、このアプローチの恩恵を受けるかもしれないと私に思います。また、あなたの「アプリケーション」が3つの実際のRailsアプリケーションにまたがるため、テストがより難しくなると私は考えています。

    つまり、3つのアプリケーションを使用して設定している場合は、とAPIを使用することをお勧めします。 APIはデータ(json、xml ...)を前後に渡すのに最適ですが、ビューには適していません。私のお勧めは、共通のビューのプラグインを作成して別のgitリポジトリに格納し、各アプリケーション内で単純に使用できるようにすることです。このようにして、共通コードはアプリケーション間で共有されますが、それらのすべてがローカルにアクセス可能です。

    +1

    私のアプリははるかに複雑です、私はそれを例として使用しました:)それについてもっと考えると、私はあなたが正しいことを理解しています。より複雑なものは、いずれかがダウンした場合に、マスターアプリと子供アプリの両方にキャッシュする必要があります。 – Ivan

    +0

    私はRails 3のエンジンについて読んできました。ここにいくつかの有益な情報があります:http://www.themodestrubyist.com/2010/03/05/rails-3-plugins---part-2---writing-an-engine/ – Ivan

    +0

    それは始めるのに最適な場所のようです。 –

    関連する問題