我偶然发现了我的应用程序查找数据库中不存在的 id 的情况。抛出异常。当然,对于任何 Web 开发人员来说,这都是相当标准的情况。
多亏了这个答案,我知道使用救援可以很好地处理这种情况,如下所示:
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
如果找不到客户,则将用户重定向到索引页面。这绝对没问题。
现在,这一切都很好,但我需要在显示、编辑、销毁等操作中进行相同的救援尝试,即每个需要特定 ID 的控制器方法。
话虽如此,这是我的问题: 有没有办法通常告诉我的控制器,如果它在任何方法中都找不到 id,它应该重定向到索引页面(或者,通常,执行特定任务)?