我遇到了这样一种情况:我的应用程序在数据库中查找一个不存在的id。抛出了一个异常。当然,对于任何Web开发人员来说,这都是一个非常普遍的情况。
感谢这个答案,我知道使用 rescue 可以很好地处理这种情况,像这样:
感谢这个答案,我知道使用 rescue 可以很好地处理这种情况,像这样:
def show
@customer = Customer.find(params[:id])
rescue ActiveRecord::RecordNotFound #customer with that id cannot be found
redirect_to action: :index #redirect to index page takes place instead of crashing
end
如果找不到客户,用户将被重定向到索引页面。这个功能完全正常。
现在,这很好,但是我需要在像show、edit、destroy等操作中进行相同的救援尝试,即每个需要特定id的控制器方法。
话虽如此,我的问题是: 难道没有一种通用的方法可以告诉我的控制器,如果它无法在任何方法中找到id,它将重定向到索引页面(或者通常执行特定的任务)吗?