私はレールを初めて使用し、特定のアプリケーションを最適にルーティングする方法について質問があります。私はレガシーデータベースを使用しているため、スキーマはすでに設定されており、少し複雑になっています。アプリのレイアウトには、「ユーザー」を含むトップ ナビゲーション バーが含まれており、特定の「ユーザー」には、さまざまなフォームを表示/編集するための別のナビゲーション バーがあります。たとえば、特定の「ユーザー」が照会されると、「一般情報」と「アカウント情報」などの個別のフォームが表示されます。
私が今持っている設定は、最上位のナビゲーションに対応する「ユーザー」名前空間を持ち、名前空間に「一般」、「プロジェクト」などの第2レベルのナビゲーションを持つことです。この設定では、2番目から選択された各フォームナビゲーションのレベルには、少し奇妙に見える独自のコントローラーがあります。
namespace :users do
resources :general, :project
end
これにより、:id が「user」に属する次の URL を持つことができます。
/users/general/:id
/users/general/:id/edit
/users/account/:id
/users/account/:id/edit
これは合理的に思えますか、それともネストされたナビゲーション設定を RESTful な方法で処理する方法について他のアイデアを持っている人はいますか? 従来のデータベースは、「一般」、「アカウント」モデルまたは DB テーブルがないという点で複雑です。フォームごとに、「ユーザー」モデルと関連付けられているいくつかのモデル/テーブルからプルする必要があります。「一般的な」モデルを持っていないのに「一般的な」コントローラーを持っていることは、私を悩ませているような非常にレールのようには見えません。