El día 6 de marzo de 2010 15:09, Nestor Rodriguez
<[email protected]> escribió:
> Hola amigos Virtuales unidos por ruby on rails
> Aquí tengo un proyecto hecho en RoR y como base de datos POSTGRES, hasta
> aquí todo bien.
>
> El problema es que utilizo mucho procedimientos almacenados (Espero no me
> molesta a alguien que los use) PLSQL, y cuando ocurre una excepción, es
> decir cuando no se cumple algo en el procedimiento almacenado, como por
> ejemplo, se trata de pagar una cuota ya pagada, ENTONCES TENGO QUE INFORMAR
> DEL ERROR AL CLIENTE, y lo hago utilizando  ayax, cargandolo en un DIV
> oculto que luego lo muestro.
>
> Lo que pasa es que el error que me muestra,  contiene mucha mas información
> de la que quisiera mostrar al cliente, me muestra algo como esto:
>
> ------------------------------
>
> ActiveRecord::StatementInvalid in Pagos
> cuotasController#add_new_pago_cuota_det
>
> RuntimeError: ERROR   CP0001  Mbi_pagos_cuotas_det: Este pago ya esta
> procesado, no se puede volver a insertar pagos        
>
> F.\src\pl\plpgsql\src\pl_exec.c       L2298   Rexec_stmt_raise: INSERT INTO
> "pagos_cuotas_det" ("pago_cuota_id", "nro_cuota", "solicitud_id",
> "updated_at", "nota_credito", "monto_pago", "created_at") VALUES(1, 2, 1,
> '2010-03-06 17:55:35.387000', NULL, 200000.0, '2010-03-06 17:55:35.387000')
> RETURNING "id"
>
> RAILS_ROOT: C:/Users/nestor/Documents/rails/m2h3
>
> Application Trace | Framework Trace | Full Trace
>
> --------------------------------------------------------------
>  Lo único que quisiera que dijera es: "Mbi_pagos_cuotas_det: Este pago ya
> esta procesado, no se puede volver a insertar pagos" ES DECIR, QUE DIGA SOLO
> EL MENSAJE DE LA EXCEPCIÓN  y no todo lo el chorizo de mensajes que lanza
> Rails.
>
> Esto acurre cuando trabajo en el modo development, pero cuando trabajo en
> producción, el problema es otro, hay ya ni siquiera me muestra el error sino
> que en ingles me dice que algo anda mal, me muestra algo como esto.
> ----------------------------------
>
> We're sorry, but something went wrong.
>
> We've been notified about this issue and we'll take a look at it shortly.
>
> --------------------------------
>
> Si alguien trabaja con Postgres y RoR pudiera decirme como maneja los
> mensajes enviados por los procedimientos almacenados hasta el browser del
> cliente.
>
> Desde ya Gracias!!
>
> Néstor
>
> P.D.: Perdón espero no andar pidiendo mucho jeje.
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>


Algo así te puede servir ...


begin
  pagos_cuotas_det.save
rescue  ActiveRecord::StatementInvalid => e
  if e.message.match /Mbi_pagos_cuotas_det/
    procesar_el_error
  else
    raise  e.message
  end
end


Silvio
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a