如何重定向到不同控制器中的发布操作

时间:2021-01-21 12:59:47

标签: ruby-on-rails ruby redirect

我正在创建一个使用 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 做到这一点。

1 个答案:

答案 0 :(得分:0)

只需使用 gem repost。使用起来非常简单

相关问题