それぞれが異なる機能を提供する複数のサブドメインを持つ1つのサイトを作成したいと思います。
彼らに共通しているのは次のとおりです。
- レイアウト
- ユーザー
- そのユーザーへの支払い
それで、アーキテクチャを設計するための最良の方法は何ですか(RoR3で):
- 名前空間が異なる1つのアプリ
- 共有ユーザーテーブルを持ついくつかのアプリ
- 他に何かありますか?
それぞれが異なる機能を提供する複数のサブドメインを持つ1つのサイトを作成したいと思います。
彼らに共通しているのは次のとおりです。
それで、アーキテクチャを設計するための最良の方法は何ですか(RoR3で):
すべてのウェブサイトを同じアプリに保持する場合は、問題のドメインがすべて類似しており、機能も類似しており、コンテンツのみが異なることを確認する必要があります(たとえば、Q&Aサイトのすべてのバリエーションですが、コンテンツ/ドメインが異なります)カバー)。その場合は、ログイン情報やテンプレート/コードなどの他のものを簡単に共有できるので、同じサイトにそれらを保持する価値があるかもしれません。
それ以外の場合、私見では、コードとユーザーデータベースを共有する別々のアプリに分割する方がよいでしょうが、それ以外の点では区別され、意味のある場所で共有しながら成長するにつれて分岐する可能性があります。
アプリを分離すると、共有コード/テンプレートをgemまたはライブラリに入れ(これがレールの開始方法です)、それをすべてのアプリ間で共有したり、共通のサービスを別のバックエンドWebアプリに入れたりすることができます。それらすべてにサービスを提供しますが、ユーザーには表示されません。
ログインはドメイン間で保持されないため、すべてのアプリと通信するサービスの作成に取り掛からない限り、ユーザー名/パスを共有することのみが可能であり、永続的にログインしたままにすることはできません。詳細については、この回答を参照してください。