#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 и просто добавлю ссылку на индекс.