Problema con validacion de campos No Nulo y claves foráneas.

edited noviembre 2008 in Dudas/Problemas
Trabajamos con Postgres y tenemos una tabla "Parroquias" que está relacionada con otra llamada "Estados" por el campo "estados_id" de la primera.

Estoy usando del versión 0.5 y standardforms , y cuando hago un insert , sin seleccionar un estado del combo me muestra el siguiente error :

................

KumbiaException: ERROR: null value in column "estados_id" violates not-null constraint al ejecutar 'INSERT INTO parroquias (nombre,descripcion,observacion,estados_id,imagen) VALUES ('asdasdasdasd','asdasasdas','asdasdasdas',NULL,'@')' (0)

En el archivo C:\xampp\htdocs\belen\library\kumbia\db\adapters\pgsql.php en la línea: 229<

C:\xampp\htdocs\belen\library\kumbia\db\db.php(217)
C:\xampp\htdocs\belen\library\kumbia\db\active_record_base\active_record_base.php(1868)
C:\xampp\htdocs\belen\library\kumbia\db\active_record_base\active_record_base.php(1319)
C:\xampp\htdocs\belen\library\kumbia\controller\standard_form\standard_form.php(367)
C:\xampp\htdocs\belen\library\kumbia\dispatcher\dispatcher.php(293)
C:\xampp\htdocs\belen\library\kumbia\kumbia.php(362)
C:\xampp\htdocs\belen\public\index.php(72)

Información Adicional:
Aplicación actual: default
Entorno actual: development
Ubicación actual: default/parroquias/insert
Modelos Cargados: Acciones, Animales, Animaleshembras, Animalesmachos, Auditoria, Bajas, Categorias, Celos, Comunidades, Estados, Eventos, Grupos, Lecheros, Lluvias, Lotes, Niveles, Parcelas, Parcelashistorial, Parroquias, Partos, Permisos, Pesajes, Productores, Productos, Razas, Secados, Sectores, Servicios, Tactos, Terceros, Tiposeventos, Tiposingresos, Tiposservicios, Unidadesmedidas, Unidadesproductivas, Usuarios, Viewvacasaparir, Viewvacasasecar, Viewvacasatactar, Viewvacasproblemas
Modulos Cargados: library/kumbia/logger/logger.php, library/mail/mail.php, library/libchart/libchart.php, library/kumbia/auth/auth.php, library/fpdf/fpdf.php
Plugins Cargados:
Datos de Session:


..................

No debería mostrar un mensaje de advertencia de que el campo NO debe ser nulo
ó que es requerido ? ... si lo hace por ejemplo cuando no se pone nada en el campo "Nombre" ...


Este campo está definido como NO NULO ... acá les dejo la descripción de la tabla :

CREATE TABLE "public"."parroquias" (
"id" SERIAL,
"nombre" VARCHAR(100) NOT NULL,
"descripcion" VARCHAR(200),
"observacion" VARCHAR(500),
"estados_id" INTEGER NOT NULL,
"imagen" VARCHAR(100),
"estado" CHAR(1) NOT NULL,
CONSTRAINT "parroquias_pkey" PRIMARY KEY("id"),
CONSTRAINT "parroquias_fki_estados" FOREIGN KEY ("estados_id")
REFERENCES "public"."estados"("id")
ON DELETE NO ACTION
ON UPDATE NO ACTION
NOT DEFERRABLE
) WITHOUT OIDS;

CREATE INDEX "fki_parroquias_fki_estados" ON "public"."parroquias"
USING btree ("estados_id"

Comentarios

  • Tu deberias crear la validacion el error se esta produccion es por la FK, si fuera un campo de la misma tabla te muestra el mensaje que tu esperas.... lo que puedes hacer es hacer uso de los validadores de ActiveRecord... before_insert()
  • edited 8:08
    Leyendo el manual , pude ver que se pueden usar callbacks del lado del cliente usando javascripts . Para ello cree uno llamado parroquias.js en la
    carpeta javascript y me muestra el siguiente error cuando carga la página :

    Notice: Undefined index: controller in C:\xampp\htdocs\belen\library\kumbia\generator\generator.php on line 374

    Luego viendo esa línea de código :

    self::forms_print("<script type='text/javascript' src='".KUMBIA_PATH."javascript/{$_REQUEST["controller"]}.js'>script>\r\n");

    La reemplazé por esta y ahora SI funciona :

    self::forms_print("<script type='text/javascript' src='".KUMBIA_PATH."javascript/$controller_name.js'></script> \r\n");
  • Gracias por el bug arreglado sin embargo seria prudente que el mismo lo publicaras con la misma solución en el Trac de Kumbia [1] es mas fácil de gestionar por esa via..
    [1]->http://tools.assembla.com/kumbia/newticket

    Pudiste solucionar el problema de la validación con los callbacks del lado cliente?
Sign In or Register to comment.