0

私が持っている特定の設計フローを適切な REST アーキテクチャに適合させる方法を理解するのに少し苦労しています。流れを説明しましょう:

ユーザーがProblemRequestsを送信できるテクニカル サポート Web サイトを作成しています。フロント ページで、ユーザーは問題が発生しているすべてのカテゴリを選択し、[ヘルプを表示] をクリックすると、次のページにリダイレクトされ、フォームに記入してリクエストを送信します。ここにページがあります:

ページ 1 - 問題カテゴリの選択

ページ 2 - 問題のリクエストに記入する

ページ 2 は、基本的にProblemRequestの NEW アクションのように機能します。問題は、各 ProblemRequest が複数のProblemCategoriesに依存しているため、ネストされたルートはここでは機能しません。次に頭に浮かぶのは、関連するすべての ProblemCategories ID をNEW ProblemRequestアクションの GET パラメータとして送信することですが、URL で ID を公開したくありません。

マルチパート フォームが頭に浮かびますが、それにはProblemRequestsを状態にする必要があり、一部は完了しており、他は未完了です。実際には、これは 1 ページの投稿であり、非常に時間のかかるプロセスではないため、その影響については扱いたくありません。

理想的には、 ProblemRequests コントローラーの NEW アクションをオーバーライドして POST 操作に応答することですが、これが悪いプログラミング手法と見なされるかどうかはわかりません。これは大罪ですか?NEW アクションを GET ではなく POST に応答するように変更してもよろしいですか?

お知らせ下さい、

前もって感謝します。

4

2 に答える 2

2

単純にする。サーバーへのラウンドトリップの理由はありますか?2つの「ページ」を1つのページにして、選択したカテゴリの状態をクライアント側で維持します。

于 2012-06-22T22:41:06.663 に答える
1

マルチステップ フォームを使用する: http://railscasts.com/episodes/217-multistep-forms

ID はセッションに保存できます。情報の入力が完了するまで、モデルは DB に保存されません。シンプルな 2 または 3 ステップのフォームに最適です。

より複雑なウィザードについては、 https://github.com/schneems/wickedのような宝石を使用できます

于 2012-06-22T23:49:19.970 に答える