Relación 1 a muchos
Pongamos que tenemos una persona que tiene muchos teléfonos
# una migración para crear una persona con su nombre
class CreatePeople < ActiveRecord::Migration
def self.up
create_table :people do |t|
t.column :name, :string
end
end
def self.down
drop_table :people
end
end
#una migración para indicar que existe la tabla teléfono y que una persona tiene muchos teléfonos.
class CreatePhones < ActiveRecord::Migration
def self.up
create_table :phones do |t|
t.column :number, :string
t.column :perdon_id, :integer
end
end
def self.down
drop_table :phones
end
end
#### ahora en los modelos
class Person < ActiveRecord::Base
has_many :phones # una persona tiene muchos teléfonos :phones
# has_many :telefonos, :class_name => "Phone"
# has_one :phone #una persona tiene un teléfono ...el nombre de :phone es el nombre del modelo
end
class Phone < ActiveRecord::Base
belongs_to :person #un teléfono pertenece a una persona.
end
Nota
.-Donde tienes un has_one o un has_many, del otro lado hay un belongs_to
.-Si la relación es de muchos a muchos, ponemos en los dos modelos el has_and_belongs_to_many (en plural)
.-Cuando es de muchos a muchos, tienes que crear una tabla en bbdd cuya convención sea tabla1_tabla2, donde están ordenadas alfabéticamente. Ejemplo: people_phones y luego es person_id, phone_id
.-Cuando hablamos de relaciones en ruby on rails, se tratan en arrays
No hay comentarios:
Publicar un comentario