0

Rails 3でFormtasticを使用して作成したフォームがあります。フォームはClientsControllerの#createアクションに送信され、保存が成功すると、コントローラーは「ありがとう」ページにリダイレクトします。保存に失敗すると、フォームが埋め込まれているページにリダイレクトされます。フォームページに検証エラーをインラインで表示できるようにしたいのですが、そのページにリダイレクトした後、エラーオブジェクトは空に戻ります。

フォームに検証エラーを表示できるようにするにはどうすればよいですか?

これがコントローラーからのコードです。

if client.save && event.save
  redirect_to "/thank-you"
else
  redirect_to :back
end  

いくつかの追加の詳細:私はRefineryCMSを使用しているため、フォームがあるページのビューがないためrender、ビューを表示できません。

4

2 に答える 2

1

エラーをセッションに保存する必要があります。


if client.save && event.save
  session[:client_create_errors] = nil
  redirect_to "/thank-you"
else
  session[:client_create_errors] = client.errors
  redirect_to :back
end

これで、使用していたものからエラーオブジェクトにアクセスできますsession[:client_create_errors]

于 2010-12-06T21:08:20.667 に答える
1

なぜだめですか:

render :action => 'name-of-the-view-the-form-is-in'

redirect_to :back?の代わりに

于 2010-12-03T10:37:48.360 に答える