2

我正在使用chargify_api_aresgem 搜索 Chargify 订阅。

@current_subscription = Chargify::Subscription.find_by_customer_reference(@dealer.id)
redirect_to(dealers_path) unless @current_subscription

但是,如果没有找到订阅,它永远不会进入它重定向的下一行,因为find_by_customer_reference如果它没有找到任何东西,它会吐出 404,但我想要某种方式让它返回nil,这样我就可以让它到下一行,我将用户重定向到那里。

有谁知道我可以如何轻柔地失败,或者如果没有找到对象,我可以重定向用户的更好方法吗?谢谢。

4

1 回答 1

5

大概该方法引发了一个ActiveRecord::RecordNotFound异常,您可以将其捕获并转换为重定向:

begin
  @current_subscription = Chargify::Subscription.find_by_customer_reference(@dealer.id)
rescue ActiveRecord::RecordNotFound
  redirect_to dealers_path
end
于 2012-10-17T15:55:22.487 回答