Claves primarias en ActiveRecord

Hola lista. Tengo un problema bastante elemental con ActiveRecord:

No uso migrations, y por convenio, uso nombretabla_id como la clave
primaria. Para ello, en mi modelo pongo, por ejemplo:

class Post < ActiveRecord::Base

set_primary_key “post_id”
set_table_name “post”

end

Y en mysql, la columna post_id la tengo creada como NOT NULL
auto_increment. Si lo hago asi, active record, al añadir un registro
nuevo, simplemente pasa de esa columna, y p.ej al hacer un insert,
envia el siguiente sql:

INSERT INTO post (body, created_by, subject, created_at,
post_status) values(…)

Lo qual funciona bien para añadir registros nuevos, pero para editar,
no funciona porque me crea siempre uno de nuevo en lugar de hacer un
update ( y post_id siempre es nil).
Me falta algo, o cómo deberia hacerlo?

PD: Por cierto, que diferencia hay entre set_primary_key y
self.primary_key= ?

Gracias!


Dani