Dans rails 4, lorsque l'on utilise postgresql et l'option schéma_plus gemme, vous pouvez simplement écrire
add_reference :posts, :author, references: :users
Cela créera une colonne author_id
qui fait correctement référence à users(id)
.
Et dans votre modèle, vous écrivez
belongs_to :author, class_name: "User"
Remarque : lors de la création d'un nouveau tableau, vous pouvez l'écrire comme suit :
create_table :things do |t|
t.belongs_to :author, references: :users
end
Remarque : le schema_plus
dans son intégralité n'est pas compatible avec rails 5+, mais cette fonctionnalité est offerte par la gemme schema_auto_foreign_keys (partie de schema_plus) qui est compatible avec rails 5.