¿Cómo administrar la clave principal sin autoincremento en Rails?

Tengo muchas situaciones en las que me gustaría tener una clave principal sin autoincremento al usar Rails.

Ejemplo: Tengo una relación uno a uno entre A y B. B describe algunas características específicas agregadas a A, por lo que no puede existir sin A. Así que tenemos:

A tiene uno B
B pertenece a A

El pensamiento natural sería tener B.A_id como clave principal. Así que lo intentécreate_table b, :id=>false en la migración yset_primary_key :a_id en el modelo de B, pero no crea claves primarias reales en la base de datos. Y los quiero (así como las claves externas), ya que la base de datos no solo será utilizada por esta aplicación Rails.

Si creo claves primarias con ejecutar, no aterrizan en schema.rb, lo que duele. Ahora estoy pensando en una solución alternativa: puedo vivir sin la restricción PK siempre que haya una restricción única para esa columna, así que puedo usar el add_index de Rails en la migración, que parece más elegante.

¿Alguna sugerencia?

Respuestas a la pregunta(1)

Su respuesta a la pregunta