¿Cómo manejar ActiveRecord :: RecordNotFound en el controlador de rieles?
Tengo una aplicación con usuario y eventos. Cada usuario tiene varios eventos. Cuando un usuario quiera ver un evento específico, llegará a esta acción:
def show
begin
@userEvents = current_user.event
@event = @userEvents.find(params[:id])
rescue ActiveRecord::RecordNotFound
redirect_to :controller => "main", :action => "index"
end
respond_to do |format|
format.html # show.html.erb
format.json { render json: @event }
end
end
Si no se encuentra el evento para el usuario, significa que jugó con la URL y que el evento que está tratando de obtener no le pertenece. Quiero redirigirlo a la página principal o simplemente mostrar la página con un error que indica que no se encuentra el evento. Si trato de ejecutar el código anterior se dispara este error:
AbstractController::DoubleRenderError in EventsController#show
¿Cuál es la mejor manera de solucionar esto?