05-09-2011, 05:33 PM
(05-09-2011, 04:39 PM)Sephi-Chan a écrit : L'idée, c'est d'avoir des attributs classiques dans ton modèle Player, par exemple position_x et position_y.
Ensuite, tu annonces au modèle qu'il dispose d'un attribut composé nommé location et qui utilise la classe Location (c'est juste un exemple). Tu expliques ensuite à ActiveRecord comment map ces attributs grâce à la doc et magie : tu peux faire @person.location.x ou @person.location.persons_around, etc.
Ça n'utilise pas du tout les types spécifiques à PostgreSQL, mais ça permet par contre d'avoir les méthodes que tu veux dans ta classe Location.
Sinon il faut passer par des adapters, mais qui te rendent plus dépendant à ta base de données. À toi de choisir.
Je penses que j'utiliserais plutôt les adaptaters (la BDD permet de récupérer aussi distinctement les x et y d'un point (SELECT monpoint[0] as x, monpoint[1] as y FROM matable), tout en gardant les fonctions propres à ce type. Merci en tous les cas.