Resgate geral em todo o controlador quando o id não foi encontrado - RoR
Eu tropecei em uma situação onde o meu aplicativo procura por um id que não existe no banco de dados. Uma exceção é lançada. É claro que esta é uma situação bastante normal para qualquer desenvolvedor web.
Graças aesta resposta Eu sei que o uso de acordos de resgate com a situação é muito bom, da seguinte forma:
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
Caso o cliente não seja encontrado, o usuário será redirecionado para a página de índice. Isso funciona absolutamente bem.
Agora, tudo isso é legal, mas eu preciso fazer as mesmas tentativas de resgate em ações como mostrar, editar, destruir, etc.cada método controlador que precisa de um id específico.
Tendo dito isto,aqui está a minha pergunta: Não há como dizer geralmente ao meu controlador que, se ele não puder encontrar o id em algum de seus métodos, ele deverá redirecionar para a página de índice (ou, geralmente, executar uma tarefa específica)?