2017-07-31 29 views
6

私は機能/ルートを共有している2つのアプリケーションを持っています。例えば、両方のアプリケーションでは、同じように動作する日記、目標追跡、睡眠追跡などがあります。各アプリに固有のルートもあります。 AppAでは、ユーザーは自分の気分を追跡することができ、AppBでは、ユーザーは自分の医師からメモを見ることができます。フロントエンドロジックを含む複数のアプリを含む傘プロジェクト。

/appsに汎用アプリAppA AppBを含む傘プロジェクトを作成する方法はありますか?各アプリケーションには、独自のルータ/コントローラ/テンプレートなどがあります.AppAとAppBはそれぞれGenericAppを依存関係として必要とします。これまでのところ、フロントエンドのロジック(Web)を含む1つのアプリケーションを含む傘のプロジェクトだけが見られました。他のアプリケーションはライブラリに含まれていました。これは複数のアプリケーション間でどのようにルーティングできますか?私はこれのために取ることができる別のアプローチがありますか?

this question & answerが検索で見つかりましたが、正確には私が探しているものではありません。それは他のライブラリを含む1つのフロントエンドアプリのパターンに従っているようです。

答えて

4

はい、確かに 'generic'ルートを別々の傘アプリに分割し、AppAAppBからforwardに転送することができます。

AppBの要求を共有コードに転送するには、Phoenix.Router.forward/4関数を使用します。

例えば、これは、exq_uiが大きいアプリケーションに組み込むことができる方法である。

pipeline :exq do 
    plug :accepts, ["html"] 
    plug :fetch_session 
    plug :fetch_flash 
    plug :put_secure_browser_headers 
    plug ExqUi.RouterPlug, namespace: "exq" 
    end 

    scope "/exq", ExqUi do 
    pipe_through :exq 
    forward "/", RouterPlug.Router, :index 
    end 
関連する問題