我正在创建一个使用 Stripe API 进行捐赠的项目(使用用户输入自定义捐赠金额)。
基本上我有 2 个控制器
第一个是支付信息控制器(它具有条带的所有功能)基本上创建 Checkout::Sessions
第二个是我的frontendviews控制器(负责网站的所有页面)
在我的前端视图控制器中,我有这个方法
def createpayment
@paymentinfo = Paymentinfo.new(pay_params)
respond_to do |format|
if @paymentinfo.save
format.html { redirect_to donation_url, flash: {thanks: 'Thank you for providing us with your desired amount'}}
else
format.html { redirect_to donation_url, flash: {msg: 'Minimum Donation is 1 USD'}}
end
end
end
def pay_params
params.require(:paymentinfo).permit(:amount)
end
基本上我想将 redirect_to 重定向到支付信息控制器中的一个操作
def createcustom
amount = Paymentinfo.last.amount
amountfinal = (amount*100);
@session = Stripe::Checkout::Session.create(
payment_method_types: ['card'],
line_items: [
{
name: 'Custom Amount donation',
description: 'Custom Amount donation',
amount: amountfinal,
currency: 'eur',
quantity: 1
}],
success_url: paymentinfo_success_url + '?session_id={CHECKOUT_SESSION_ID}',
cancel_url: paymentinfo_cancel_url
)
respond_to do |format|
format.js # renders create.js.erb
end
结束
要重定向到此方法(这是一篇文章),我正在寻找一种快速简便的方法。最好不创建新控制器(我知道这不是理想的方式,也不是很 DRY),但是有没有办法解决它? (我知道我不能用 redirect_to 做到这一点。