0

私はレールを初めて使用し、特定のアプリケーションを最適にルーティングする方法について質問があります。私はレガシーデータベースを使用しているため、スキーマはすでに設定されており、少し複雑になっています。アプリのレイアウトには、「ユーザー」を含むトップ ナビゲーション バーが含まれており、特定の「ユーザー」には、さまざまなフォームを表示/編集するための別のナビゲーション バーがあります。たとえば、特定の「ユーザー」が照会されると、「一般情報」と「アカウント情報」などの個別のフォームが表示されます。

私が今持っている設定は、最上位のナビゲーションに対応する「ユーザー」名前空間を持ち、名前空間に「一般」、「プロジェクト」などの第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 テーブルがないという点で複雑です。フォームごとに、「ユーザー」モデルと関連付けられているいくつかのモデル/テーブルからプルする必要があります。「一般的な」モデルを持っていないのに「一般的な」コントローラーを持っていることは、私を悩ませているような非常にレールのようには見えません。

4

1 に答える 1

0

正しい方向に向かっていますが、名前空間は、探している関連付けを維持するのに役立ちません。代わりに、これを試してみます:

resources :users do
  resources :general, :project
end

また、 Rails ルーティング ガイドも参照することをお勧めします。

于 2012-05-06T20:54:01.250 に答える