Actualizar fila de una join table

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