Я наткнулся на ситуацию, когда мое приложение ищет идентификатор, который не существует в базе данных. Вызывается исключение. Конечно, это довольно стандартная ситуация для любого веб-разработчика.
Я знаю, что использование спасения с ситуацией довольно аккуратно, например:
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 и т.д., т.е. каждый метод контроллера, которому нужен определенный идентификатор.
Сказав, что здесь мой вопрос: Разве нет способа вообще сообщить моему контроллеру, что если он не может найти идентификатор в любом из своих методов, он должен перенаправить на индексную страницу (или, как правило, выполнить определенную задачу)?