如果找不到对象,则重定向

时间:2012-10-17 15:50:09

标签: ruby-on-rails chargify

我正在使用chargify_api_ares gem来搜索Chargify订阅。

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

但是,如果没有找到订阅,它永远不会进入重定向的下一行,因为如果找不到任何内容,find_by_customer_reference会吐出404,但我想要一些方法让它返回nil代替,所以我可以将它转到下一行,我将用户重定向到那里。

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

1 个答案:

答案 0 :(得分:5)

据推测,该方法引发了ActiveRecord::RecordNotFound异常,您可以捕获并转变为重定向:

begin
  @current_subscription = Chargify::Subscription.find_by_customer_reference(@dealer.id)
rescue ActiveRecord::RecordNotFound
  redirect_to dealers_path
end