0

こんにちは、私は最初の Rails プロジェクトに取り組もうとしていますが、(フォト アルバムの) ショーまたはインデックス ビューを、より多くのフォト アルバムを作成するフォームと組み合わせることができるかどうか疑問に思っていました。これを行うための正しいパラメーターが URL にないでしょうか? フォームにアクションを設定して「作成」し、成功したら再びインデックスページにリダイレクトすることはできますか?

4

1 に答える 1

2

確かにこれを行うことができます。作成/更新するページにフォームコードを配置するだけで機能します。

唯一の問題は、作成/更新の成功または失敗後にアクションがリダイレクトする場所です。通常、newページから、成功すると新しく作成されたレコード (新しいレコードのアクション) にリダイレクトされ、失敗showするとアクションに戻ります。new(フォームフィールドにエラーがあります)。異なるページからレコードを作成/更新し、それぞれの場合に異なるページにアクションをリダイレクトする場合は、もう少し作業を行う必要があります。

可能性としては、リダイレクト先のアクションを含むフォームに非表示のパラメータを追加し、アクションにそれをチェックさせ、それに応じてリダイレクトさせることです。例えば:

VALID_REDIRECT_ACTIONS = ["show", "index"]

def create
  ...
  if @photo.save
    flash[:success] = "Photo successfully created!"
    if VALID_REDIRECT_ACTIONS.include?(params[:redirect])
      redirect_to params[:redirect]
    else
      redirect_to @photo
    end
  else
    ...
  end
end
于 2012-09-30T00:10:52.967 に答える