miércoles, 13 de enero de 2010

Pinceladas sobre migrations

Ayer le di una vuelta a las rails guides para refrescar la memoria acerca de las relaciones polimórficas y siguiendo un par de enlaces llegué a la guía sobre migrations. Y encontré que hay una helper para crear campos con foreign keys.

Los ejemplos de la guía son estupendos:

create_table :products do |t|
  ...
  t.references :category
  ...
end


creará una tabla products con un campo category_id para hacer referencia a una tabla categories.

Para reforzar la clave extranjera con un índice apropiado es necesario utilizar un plugin como foreign key migrations.

Por otra parte, también podemos utilizar la helper references para crear campos para una relación polimórfica:

create_table :addresses do |t|
  ...
  t.references :addressable, :polymorphic => true
  ...
end


creará una tabla products con los campos addresable_type y addresable_id para que funcione una relación como

class Address < ActiveRecord::Base
  belongs_to :addressable, :polymorphic => true
end


Más información, aquí y aquí.

¡Salud y rocanrol!

Darkness
Imprisoning me
All that I see
Absolute horror
I cannot live
I cannot die
Trapped in myself
Body my holding cell

Landmine
Has taken my sight
Taken my speech
Taken my hearing
Taken my arms
Taken my legs
Taken my soul
Left me with life in hell