如何获取ActiveRecord :: Base.connection.execute的错误?

ohh*_*hho 7 activerecord ruby-on-rails

  begin

    ActiveRecord::Base.transaction do

      // ...
      sanitized_sql = "INSERT INTO pinfo ..."
      ActiveRecord::Base.connection.execute(sanitized_sql)

    end

  rescue

    // how can I get the error?       

  end
Run Code Online (Sandbox Code Playgroud)

在webrick控制台中,错误(1967-07-16?00:00:00)显示为:

EXECUTE(0.0ms)ODBC :: Error:22008(241)[unixODBC] [FreeTDS] [SQL Server]语法错误将日期时间从字符串转换为。:INSERT INTO pinfo(birthdate)VALUES('1967-07-16?00: 00:00')EXECUTE(0.8ms)IF @@ TRANCOUNT> 0回滚交易

如何ODBC::Error: 22008 (241) ...ActiveRecord::Base.connection.executein中引发上述错误消息()rescue

Raj*_*Das 3

 begin  
  ActiveRecord::Base.transaction do  

  // ...
  sanitized_sql = "INSERT INTO pinfo ..."
  ActiveRecord::Base.connection.execute(sanitized_sql)

  end
 rescue Exception => exc 
   logger.error("Message for the log file #{exc.message}") 
   flash[:notice] = "Store error message #{exec.message}" 
 end
Run Code Online (Sandbox Code Playgroud)

谢谢