Rails: Claves foraneas en las migraciones
Hay varias formas para indicar la restriccion que implica una clave foranea en nuestras tablas cuando estamos utilizando las migraciones para definir dichas tablas.
La primera y mas “tosca” consiste en indicar a pelo dicha restriccion:
class CreateOrder < ActiveRecord::Migration def self.up t.string :name t.integer :user_id execute "alter table table add constraint fk_table_user \ foreign key (user_id) references users (id)" end ... end
Pero tambien podemos aprovechar algun plugin para facilitarnos el trabajo.Es aqui donde entra en juego este plugin que descubri hoy.
Con este plugin podemos rehacer lo anterior de la siguiente forma:
class CreateOrder < ActiveRecord::Migration def self.up t.string :name t.integer :user_id t.foreign_key :users,:user_id,:id end ... end
Bastante mejor, no?.Este plugin tiene disponible adaptadores para mysql y postgresql.
Aqui teneis los otros plugins que tienen disponibles.