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.

Category: programacion, rails | Tags: 2 comments »

2 Responses to “Rails: Claves foraneas en las migraciones”

  1. Andion

    No es lo mismo que hacer t.referentes :user ?

  2. Andion

    QuerĂ­a poner references xD.. hay un alias tb: belongs_to


Leave a Reply