エラーに関する Stripe ドキュメントを確認しましたが、これらのエラーを適切に処理またはリダイレクトするのにまだ問題があります。基本的に、何が起こっても、edit
( 経由で) アクションに戻りedit_profile_path
、メッセージを表示する (成功したかどうかに関係なく) ことを望んでいます。
edit
アクションに POST するアクションのフォームがありupdate
ます。これは有効なクレジット カードで正常に機能しています (料金は Stripe ダッシュボードにあります)。Stripe.js を使用しています。
class ExtrasController < ApplicationController
def edit
@extras = current_user.extras
end
def update
Stripe.api_key = "hidden"
token = params[:stripeToken]
begin
charge = Stripe::Charge.create(
:amount => 5000, # amount in cents
:currency => "usd",
:card => token,
:description => current_user.email
)
rescue Stripe::CardError => e
# redirect_to edit_extras_path, notice: e.message
# What I'm trying to do, but obviously results in AbstractController::DoubleRenderError
rescue => e
# Something else happened, completely unrelated to Stripe
# Display a generic error message
end
redirect_to edit_extras_path, notice: "Card charged successfully."
end
end