Ruby on rails 如何显示描述性错误消息?

Ruby on rails 如何显示描述性错误消息?,ruby-on-rails,Ruby On Rails,我在RubyonRails中显示错误消息时遇到问题。我正在使用: rescue => Exception ex #display ex.message 当我试图在警报消息框中显示时,得到的输出如下: “DBI::DatabaseError:37000(50000) [Microsoft][ODBC SQL Server 驱动程序][SQL Server]无法批准 指定日期的记录..:Exec uspTestProc 2791672。“ 它显示一些对用户不友好的单词。我想要的是只显示以下

我在RubyonRails中显示错误消息时遇到问题。我正在使用:

rescue => Exception ex
 #display ex.message
当我试图在警报消息框中显示时,得到的输出如下:

“DBI::DatabaseError:37000(50000) [Microsoft][ODBC SQL Server 驱动程序][SQL Server]无法批准 指定日期的记录..:Exec uspTestProc 2791672。“


它显示一些对用户不友好的单词。我想要的是只显示以下文字:“无法批准指定日期的记录”

在任何语言中,我通常会处理异常并向用户显示一个简化版本

用户不应该看到某些东西的内部工作,异常是向他们展示一大堆废话的好方法

一:

  • 记录实际的异常,因为我或系统维护人员需要确切地知道发生了什么,如果可能的话,可以使用tracelog
  • 向用户显示针对特定问题的定制异常-“您输入了错误的数据!”
  • 或者是一个一般性的错误——“哦,不!出了可怕的错误!!1”-如果这不是由用户引起的,或者我还没有处理它的理由
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."
然后显示它(可能在catchall布局中):



这就是你要找的吗?

我认为这样的错误是可以被救出的


class ApplicationController

  rescue_from MyException do
    render :text => 'We have some issue in our database'
  end
end

你好感谢您的回复,该错误是在ms sql中使用raiserror引发的。。例如raiserror(“无法批准指定日期的记录”)我喜欢显示“无法批准指定日期的记录”这个词。但是当我在ruby on rails中显示它时,我得到的是“DBI::DatabaseError:37000(50000)[Microsoft][ODBC SQL Server驱动程序][SQL Server]无法批准指定日期的记录..:Exec uspTestProc 279,167,2“希望您能帮助我..非常感谢。您好。感谢您的回复,该错误是在ms sql中使用raiserror引发的。。例如raiserror(“无法批准指定日期的记录”)我喜欢显示“无法批准指定日期的记录”这个词。但是当我在ruby on rails中显示它时,我得到的是“DBI::DatabaseError:37000(50000)[Microsoft][ODBC SQL Server驱动程序][SQL Server]无法批准指定日期的记录..:Exec uspTestProc 279,167,2“希望您能帮助我..非常感谢。

class ApplicationController

  rescue_from MyException do
    render :text => 'We have some issue in our database'
  end
end