Как отобразить описательное сообщение об ошибке? - PullRequest
0 голосов
/ 04 марта 2010

У меня проблема с отображением сообщения об ошибке в Ruby on Rails. Я использую:

rescue => Exception ex
 #display ex.message

Вывод, который я получаю при попытке отобразить его в окне сообщения с предупреждением, таков:

"DBI :: DatabaseError: 37000 (50000) [Microsoft] [ODBC SQL Server Драйвер] [SQL Server] Не удается утвердить записи на указанную дату ..: Exec uspTestProc 279, 167, 2. "

Отображает некоторые слова, которые не дружат пользователям. Я хочу, чтобы отображались только следующие слова: " Не удалось утвердить записи на указанную дату "

Ответы [ 3 ]

1 голос
/ 04 марта 2010

Обычная практика в Rails - использовать переменную сессии flash в контроллере:

# error catching logic goes here
flash[:error] = "There was an error!"

# notice logic goes here
flash[:notice] = "I am sending you a notice."

Затем отобразите его (возможно, в рамках разметки):

<% if flash[:error] %>
<div id="error"><%= flash[:error] %></div>
<% end %>

<% if flash[:notice] %>
<div id="notice"><%= flash[:notice] %></div>
<% end %>

Это то, что вы ищете?

1 голос
/ 04 марта 2010

Я думаю, что такую ​​ошибку можно отловить с помощью rescue_from


class ApplicationController

  rescue_from MyException do
    render :text => 'We have some issue in our database'
  end
end
0 голосов
/ 04 марта 2010

На любом языке я обычно всегда обрабатываю исключения и показываю пользователю неактивную версию.

Пользователи не должны видеть внутреннюю работу чего-либо, а исключения - отличный способ показать им большой беспорядок.

I:

  • Записать фактическое исключение, потому что я или сопровождающий системы должны точно знать, что произошло, с помощью tracelog, если это возможно.
  • Покажите пользователю либо специальное исключение для конкретной проблемы - «Вы ввели неверные данные!»
  • Или общая ошибка - «О, нет! Что-то пошло не так !!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...