私はかなりの数の関連モデルを使用してアプリケーションに取り組んでおり、コントローラーを最適に編成する方法について意見を聞きたいと思っています。
ここに私が検討しているいくつかのオプションがあります:
1) コントローラーの名前空間。たとえば、controllers/admin ディレクトリと controllers/public ディレクトリを作成します。これは組織にとって魅力的に見えますが、1 つのリソースがさまざまなディレクトリに適切に属している可能性のあるアクションを持つことがよくあるため、ちょっと不自然でもあります (たとえば、show アクションは public であり、create アクションは admin です)。したがって、これは私のリソースの一部を 2 つの別個のコントローラー (1 つはパブリック、もう 1 つは管理者) に分割することを意味します。悪いようです。
2) ネストされたリソースを作成します。私はネストされたリソースをたまにしか使用していないので、リソースをネストするのが最適な場合と、必要なデータをパラメーターを介して明示的に渡すのが最適な場合が常に明確であるとは限りません。ネストされたリソースを使用する最善の方法について、提案/例を誰かが持っていますか? 良いアイデアはいつですか?オーバーキルはいつですか?
3) デフォルトの scaffolded コントローラーをそのままにしておきます。必要に応じて新しいコレクション/メンバー アクションを作成し、フィルターの前に使用して、各コントローラー内でアクセス許可を設定します。これは、前もって物事をシンプルに保つため、最も魅力的です。しかし、一部のコントローラーがいくつかの新しいアクションで膨張し始める可能性があるため、物事が混乱することに少し神経質になっています.
大規模なアプリケーションを設計した経験のある人なら、ここで何らかのガイダンスを提供できれば幸いです。