トランザクションと例外処理を使用して、一連のオブジェクトをオンザフライで作成しています。現在、ロールバックとすべてを期待どおりに処理していますが、私のレスキュー ブロックは、私が指示したアクションをレンダリングしようとしません。
これがトランザクションを処理する私のコードです
def post_validation
ActiveRecord::Base.transaction do
begin
params[:users].each do |user|
#process each user and save here
end
redirect_to root_path #success
rescue ActiveRecord::RecordInvalid
# something went wrong, roll back
raise ActiveRecord::Rollback
flash[:error] = "Please resolve any validation errors and re-submit"
render :action => "validation"
end
end
end
失敗時に予想されること:トランザクションをロールバックし、アクション「検証」をレンダリングします。
失敗時に何が起こっているか:トランザクションをロールバックし、存在しないビュー "post_validation" をレンダリングしようとします。