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ón

Gracias, Luc

¿Fue útil?

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 @

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top