我在Ruby on Rails中显示错误消息时遇到问题。我正在使用:
rescue => Exception ex
#display ex.message
我尝试在警告消息框中显示它时得到的输出是:
“DBI :: DatabaseError:37000(50000) [Microsoft] [ODBC SQL Server 驱动程序] [SQL Server]无法批准 指定日期的记录..:Exec uspTestProc 279,167,2。“
它会显示一些对用户不友好的单词。我想要的只是显示这些词:“无法批准指定日期的记录”
答案 0 :(得分:1)
Rails中的常见做法是在Controller中使用“flash”会话变量:
# error catching logic goes here
flash[:error] = "There was an error!"
# notice logic goes here
flash[:notice] = "I am sending you a notice."
然后显示它(可能在一个catchall布局中):
<% if flash[:error] %>
<div id="error"><%= flash[:error] %></div>
<% end %>
<% if flash[:notice] %>
<div id="notice"><%= flash[:notice] %></div>
<% end %>
那是你在寻找什么?
答案 1 :(得分:1)
我认为这样的错误可以通过rescue_from
捕获
class ApplicationController
rescue_from MyException do
render :text => 'We have some issue in our database'
end
end
答案 2 :(得分:0)
在任何语言中,我通常会处理异常并向用户显示一个愚蠢的版本。
用户不应该看到某些东西的内部运作,而异常是向他们展示一大堆废话的好方法。
I: