アプリケーションがデータベースに存在しない 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
顧客が見つからない場合、ユーザーはインデックス ページにリダイレクトされます。これは絶対にうまくいきます。
さて、これでいいのですが、show、edit、destroy などのアクション、つまり特定の ID を必要とするすべてのコントローラー メソッドで同じレスキュー試行を行う必要があります。
そうは言っても、ここに私の質問があります: 私のコントローラーに、そのメソッドのいずれかでIDが見つからない場合、インデックスページにリダイレクトする(または、一般に、特定のタスクを実行する)ことを一般的に伝える方法はありませんか? )?