1

複雑なモデルがあり、編集用にさまざまな画面を作成したいと考えています。ばかげた例として、それがユーザー モデルで、ある画面では名前を編集し、別の画面では電話番号を編集し、別のページではユーザーの設定を編集するとします。

新しいアクション、各ビューのフォーム、ルートなどを作成するのは簡単ですが、実際に送信を押したときに が呼び出さupdateれ、...その後は? エラーがある場合は、一般的な「編集」ビューではなく、モデルの編集に使用されているページに戻る必要があります。成功した場合でも、update が呼び出されたページに戻るとよいでしょう。

セッションで何かをハッキングすることはまったく難しいことではありませんが、「もっと良い方法はありますか?」と常に考えています。

4

2 に答える 2

1

私はこれよりも良い方法を見つけることができず、急いでそれを行う必要がありました:

def edit
  flash[:edit_user_return_to] = :edit
...

def other_edit
  flash[:edit_user_return_to] = :other_edit
...

に続く

render(:action => flash[:edit_user_return_to] || :edit)
于 2012-11-28T15:32:32.760 に答える
0

これを行うには、httpリファラーとURI解析機能を使用できます。何かのようなもの

redirect_to(URI.parse(request.env['HTTP_REFERER'][5]))

この行は、リクエストからHTTP REFERERを取得し、URIモジュールを使用してそれを解析します。参照パスは、配列の6番目の要素である必要があります。

于 2012-11-27T17:12:48.517 に答える