clave secundaria DataMapper
-
20-09-2019 - |
Pregunta
Estoy utilizando DataMapper en una aplicación de rubí y estoy frente a un problema que no entiendo.
Tengo un modelo de apartamento y un modelo Ubicación. Es un apartamento en un lugar determinado y varios apartamentos puede ser en el mismo lugar. Esto normalmente se describe una relación 1-n (supongo :-))
Mi feeeling es que en la tabla de SQL Appartement Necesito un location_id pero no quiero cualquier punteros Residencia dentro de la ubicación de la tabla. Para mí, la ubicación debe vivir por sí misma y no debe hacer referencia a apartamento.
En la clase de rubí Appartement, he añadido:
has n, Location
pero a continuación, crea un appartment_id dentro de la clase Ubicación rubí, que no quiero.
¿Tiene usted alguna idea?
un montónGracias, Luc
Solución
Es uno-a-muchos relación, pero para la ubicación del modelo, no por apartamento. Esto significa que la ubicación puede tener muchos apartamentos y es lo que quiere, por lo que el modelo Hotelera habrá location_id. Lo que has hecho es que usted le dijo que su DataMapper Hotelera tiene muchos lugares, por lo que agregó a appartment_id Ubicación.
Para solucionarlo se puede añadir:
has n, Appartment
en la clase Ubicación.
No sé DataMapper en absoluto, pero en Rails se puede definir en ambos modelos. En Hotelera definir algo como:
belongs_to Location
y en la ubicación de agregar algo así como mi primer ejemplo.
Otros consejos
Me acaba de decir
class Apartment
belongs_to :location
end
class Location
has n, :apartments
end
esto permitiría hacer referencia a @ apartment.location y location.apartments @