Hola lista, tengo un modelo Documento que es una join table,
documentos: (tipo_documento_id, modelo_id, nombre, file, imagen)
class Documento < ActiveRecord::Base
belongs_to :tipo_documento
belongs_to :documento
end
A la hora de actualizar una fila:
@documento=Documento.find(:first, :conditions=>["tipo_documento_id=? and
modelo_id=?"tipo,modelo])
@documento.nombre=blabla
@documento.save
no puedo usar el @documento.save porque cuando hace el update en sql
termina con where id= NULL, está buscando un id en la tabla que no
existe puesto que los índices son tipo_documento_id y modelo_id
qué puedo hacer?
Añadir una primary key al modelo y manteniendo las FK? o cómo puedo
grabarlo entonces? Gracias
On Feb 4, 2008, at 4:14 PM, Miguel Angel Calleja Lázaro wrote:
Hola lista, tengo un modelo Documento que es una join table,
documentos: (tipo_documento_id, modelo_id, nombre, file, imagen)
class Documento < ActiveRecord::Base
belongs_to :tipo_documento
belongs_to :documento
end
Por lo que explicas parece un join model, cual es la llave primaria?
– fxn
Xavier N.
escribió:>> end
Tuve una errate en el modelo:
class Documento < ActiveRecord::Base
belongs_to :tipo_documento
belongs_to :modelo
end
Como en rails no se puede crear dos primary key (creo …) seguí los
pasos del Agile, añadí dos índices tipo_documento_id y modelo_id al
modelo, asi que el modelo no tiene PK.
On Feb 4, 2008, at 5:40 PM, Miguel Angel Calleja Lázaro wrote:
Tuve una errate en el modelo:
class Documento < ActiveRecord::Base
belongs_to :tipo_documento
belongs_to :modelo
end
Como en rails no se puede crear dos primary key (creo …) seguí los
pasos del Agile, añadí dos índices tipo_documento_id y modelo_id al
modelo, asi que el modelo no tiene PK.
Ah, es que un join model tiene una PK y tipicamente un par de FKs. Es
decir, hace de puente en una m-n pero a su vez tiene entidad de modelo
y por eso puedes hacer Documento.find. En tal caso necesita una PK (id).
– fxn