0

私のアプリケーションは、親とその子供によって使用されます。

保護者が自分のアカウント ページから子供に関する詳細を編集できるようにしたいと考えています。上のセクションに親に関するフィールドが含まれ、下のセクションに子に関するフィールドが含まれる単一のフォームを想定しています。親に複数の子がいる場合、下のセクションはタブ付きになります。お子様 1 人につき 1 つのタブ。

できればRESTfulな設計を実現したい。これまでに検討したオプションは次のとおりです。

オプション 1 - 親のリソース ルートを介して親とすべての子 (ネストされた子フォームのリスト) を公開し、JavaScript を使用して UI をタブベースのレイアウトに変更します。

オプション 2 - 親のリソース ルートを介して、親と 1 つの子 (ネストされたフォーム) を公開します。同じページを公開しますが、ネストされたルートを介して特定の子を対象とします。

そう:

'GET /parent/1' は、'first' (デフォルト) の子用のネストされたサブフォームを持つ親のアカウント ページをレンダリングします。また、ネストされたルートにリンクする 2 つ以上のクリック可能なリンク (タブとしてスタイル設定) も含まれます。子ごとに 1 つ (例: 'GET /account/1/child/1' および 'GET /account/1/child/2')。

ネストされた各ルートは、「子供」コントローラーによって処理されます。このコントローラーは、実際には、親ルート/コントローラーによってレンダリングされるのとまったく同じ親のアカウント ページをレンダリングしますが、ルートによってアドレス指定された子リソースのサブフォームが適切に入力されます。

オプション 2 は実行可能なアプローチのようですが、フィードバックやその他のアイデアを歓迎します。

4

1 に答える 1

0

どちらのアプローチでも、親をまだ保存していない場合は、子の間を移動するのが難しい場合があります。子1から子2に移動する場合、子2のフォームをレンダリングして、子1タブを置き換えるため、子1に関する情報をどのように保存できますか。オプション1は、データを非表示にすることでこれを処理しますが、オプション2には間違いなくこの問題があります。

ユーザーに最初に親データを保存してから子のデータを編集してもらうことをお勧めしますが、親データと子データを同時に編集しようとしないでください。

これは、ネストされたルートの適切な使用法です。通常、ネストされたルートにはコストがかかり、外側のネストされたオブジェクトへの参照を送信し続ける必要があります。この場合、親への参照が必要です(または気にしないでください)。これは、ワークフローにとって非常に重要だからです。

ただし、ネストされたルートが適切に機能するからといって、Javascriptオプションが適切でない可能性があるという意味ではありません。その後、子データの編集中にページをリロードする必要はありません。最悪の場合、アカウントよりも子が1つ多い場合は、パーシャルをロードして新しいフォームを追加する必要があります。

于 2012-05-08T11:19:14.367 に答える