リダイレクトする代わりに、安らかなコントローラーでアクションを実行した後にレンダリングするにはどうすればよいですか。
標準アクションのコントローラーがあり、問題のリソースにデータを追加する特別なアクションを、#show ページ (投稿のコメントについて考えてください) のフォームを介して追加しました。フォームからの入力を検証しており、エラー時に show アクションを再レンダリングし、成功時に show アクションにリダイレクトしたいと考えています。
ユーザーが情報を 2 回入力するのを防ぐためにレンダリングしたいのですが、flash[:notice] でエラーが発生して show アクションをレンダリングしようとすると、ID を指定していないというエラーが表示されます。ID を指定すると、まだ存在しない新しいテンプレートをレンダリングしようとします。
私はそれが次のように単純であるべきだと考えています:
def add_comment
if my_validation?
save the object
redirect_to :action => "show", :id => params[:id]
else
render :action => "show", :id => params[:id]
end
end
これは私の実際のコードではなく、例として今まとめたものです。