我正在向我的分商家支付款項,並且想知道是否可以使用遞歸來保證在向他們支付款項時,我們將該數據保存到我們的數據庫。是否可以使用遞歸來保證一個對象在Ruby中保存到數據庫?
例子:
def make_payout
result = object.process_payout_through_gateway
if result.success?
payout = Payout.new
payout[:paid] = true
save_payout(payout)
end
end
def save_payout(payout)
begin
payout.save!
rescue e
save_payout(payout)
end
end
所以你的「錯誤處理」只是一遍又一遍地重複同樣的事情,直到你得到堆棧溢出? – Alexander
啊,我明白了,那肯定會造成循環。記錄錯誤並從那裏處理會更好,對嗎? – Ctpelnar1988
堆棧級別太深? – Eric