【发布时间】:2018-07-05 06:20:57
【问题描述】:
我有一个嵌套在其他几个方法中的方法,我希望这个方法从所有递归方法中break 返回错误。例如,如果我在这里调用了pay_order:
class API::StripeController < ApiController
def my_api_action
# ...
order = create_order
pay_order(order, token)
# do things if payment is successful
end
end
而pay_order定义为:
def pay_order(order, token)
begin
order.pay(source: token)
rescue Stripe::CardError => e
break e
end
end
如何突破所有父方法并返回支付失败导致的卡错误?我需要break and return e 或return e and break 之类的东西。但我知道break 和return 语句都会立即返回,所以我不能链接它们(我不认为)。
我可以在每个被调用的函数中添加 return 语句,但我计划在很多地方使用这种方法,并且不打算让它表现得不同,所以我正在寻找最可重复使用的编写方式。
【问题讨论】:
-
为什么不挽救顶层的错误
my_api_action
标签: ruby-on-rails ruby return break