我目前正在为Rails应用程序上的支付系统改进流程。
首先,他们会看到SaaS就像定价表一样,可以选择购买。
一旦他们按下“立即购买”以获取他们的首选计划(他们是2种付款资源类型:预付费和后付费),如果用户未填写其帐单邮寄地址,他们将被重定向以填写单独视图(如果先前已完成,则会直接指向其发票视图)。完成后,他们将被重定向回来重新选择他们的定价计划。
但是,对于无缝流程,我希望在完成帐单地址后直接创建发票。
到目前为止,我想到的是在重定向之前将会话中的定价计划订单params
(包括定价计划ID,促销代码字符串和付款类型路径)存储起来供以后使用。我想知道如何使用这些会话参数来开始创建发票并将其引导回到它的视图,可能使用request.referrer
方法?
感谢您的帮助。
答案 0 :(得分:0)
我想你检查用户是否在before_action
InvoicesController#new
中有一个帐单邮寄地址(在这里填写姓名,但这并不重要)
现在,如果他们没有填写地址,我会做什么(我在其中一个应用程序中实际执行的操作)将是这样的
before_action :require_address
def require_address
unless current_user.billing.present?
session[:after_billing] = request.url
redirect_to new_billing_path and return
end
end
然后在billings_controller#create
,因为你知道你有时会重定向到其他地方你应该做的事情
redirect_to(session[:after_billing] and return) if session[:after_billing].present?