Hola Xavier, el problema es que no puedo tener un id que sea
alfanumerico, y mucho menos asignarle un valor explicito; aunque ya
comprendi el porque de ese comportamien de RoR, de exigir que el id sea
entero y autoincrementable, lo que yo me planteaba era esto:
Tengo un modelo clieente cuyo “id” es alfanumerico
class Cliente < ActiveRecord::Base; end
Sucede que mi cliente me pidio que el mismo colocaria los codigos de
productos, no queria que se autogeneraran, por lo tanto yo queria
agregar el campo “id” en las vista tanto de edicion como de nuevo
registro, por eso hacia algo asi en el partial “_form”:
…
<%= text_field :cliente,:id %>
…
El asunto viene aqui, yo necesitaba trabajar con el valor del campo
“id”, por lo tanto lo llamaba en el callback “before_save”, pero el
atributo “id”, me devuelve nil; ahora el otro problema era que no
grababa el registro luego de editarlo, tambien era porque devolvia nil
el atributo “id”.
Bueno la solucion por la que opte fue, crear otro campo con restriccion
UNIQUE e indexarlo, y guardar ahi el codigo que ingrearia el usuario, y
el capo “id” dejarlo como entero y autoincrementable.
Ahora yo me pregunto como podria hacer en el caso que trabaje con una
base de datos ya generada y en produccion con otro sistema, en donde las
claves primarias no sean enteras y muco menos autoincrementables, como
podria hacer en la necesidad de querer trabajar con el valor de la PK?
Saludos!.
El mié, 14-03-2007 a las 19:17 +0100, Xavier N. escribió: