ruby-on-rails - 如果找不到对象则重定向

标签 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 ,这样我就可以将其转到下一行,将用户重定向到那里。

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

最佳答案

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

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

关于ruby-on-rails - 如果找不到对象则重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12938257/

相关文章:

javascript - jQuery 跨域发布重定向

java - 使用 GRAILS(chargify webhooks)解析 FORM-ENCODED 参数

ruby-on-rails - rspec-core 不是 bundle 的一部分。将其添加到 Gemfile

ruby-on-rails - 使用 Rubocop 的长强参数断线

ruby-on-rails - CSS 样式 time_ago_in_words rails

ruby-on-rails - Gmail 的操作邮件程序配置

ruby-on-rails - Ruby 和 Ruby on Rails 速成类(class)大纲

php - 如何在命令行中将参数数组传递给 cURL?