перенаправление на индекс, если код состояния 500

#ruby #ruby-on-rails-3 #ruby-on-rails-3.2

#ruby #ruby-on-rails-3 #ruby-on-rails-3.2

Вопрос:

Я добавил это в свое действие show на моем контроллере:

 redirect_to shows_path, status: 500
  

похоже, это не помогает.

Я просто хочу, чтобы он отображался в show index всякий раз, когда возникает внутренняя ошибка сервера (500) для действия show.

Комментарии:

1. Просто несколько связанный момент; есть ли причина, по которой вы этого хотите? Это может действительно запутать ваших пользователей. Сначала они не поймут, что произошла ошибка сервера, и будут продолжать пытаться вернуться на страницу. Просмотр страницы с ошибкой был бы для них гораздо более полезным.

2. Или сделайте оба /index.html#show_an_error_bar

3. Я согласен, но я перенаправляю трафик из другого приложения rails, используя заголовок, думаю, я могу добавить предупреждение: «страница, которую вы ищете, не существует, поэтому вместо этого мы привели вас сюда»

4. @user2612713 Да; я думаю, это, вероятно, будет лучшим вариантом. Имеет смысл, почему. Что касается ответа; Я не знаю, но, может быть, полезным редактированием было бы добавить тег или два, которые, как вы знаете, действительно связаны с этой темой?

Ответ №1:

Хотя я думаю, что это было бы плохо с точки зрения удобства использования, вы могли бы добавить предложение rescue, которое срабатывает только при возникновении исключения:

 def show
  # do whatever you do
rescue
  redirect_to shows_path, error: 'Something bad happened'
end
  

Комментарии:

1. спасибо, это работает, но я воспользуюсь вашим советом и внедрю пользовательскую ошибку 500 и просто добавлю ссылку на индекс.