Tag: 救援

在Rails中使用救援工作

我正在使用以下作品; def index @user = User.find(params[:id]) rescue flash[:notice] = “ERROR” redirect_to(:action => ‘index’) else flash[:notice] = “OK” redirect_to(:action => ‘index’) end 现在我要么是否有正确的ID,我总是在我看来“OK”,我做错了什么? 当数据库中没有ID显示“ERROR”时,我需要这样做。 我也试过使用rescue ActiveRecord::RecordNotFound但同样的事情发生了。 所有帮助表示赞赏。

当我”救援”重试’时,Ruby不会“确保”

考虑一下这个begin-rescue-ensure块: attempts=0 begin make_service_call() rescue Exception retry unless attempts>2 exit -1 ensure attemps += 1 end 如果按原样运行该代码,则会引发exception,因为没有名为’make_service_call()’的函数。 所以,它重试。 但它会陷入无限循环,因为控制永远不会因为“重试”而“确保”。 不管“开始”或“救援”发生什么,不应该“确保”块的一部分确保其中的代码被执行? 当然,我可以在’开始’中递增计数 – 这不是重点。 我只想问一下’确保’的问题,以便澄清一下。