Je souhaite créer une association de file d'attente polymorphe. J'ai deux files d'attente différentes à l'esprit, l'une concerne la création de bâtiments, l'autre concerne la création d'unités.Rails Association polymorphe avec un comportement différent
Bien que la file d'attente ait de nombreuses propriétés identiques, comme l'ajout ou la suppression d'éléments, il existe également des différences.
Par exemple, un bâtiment a un niveau, contrairement à une unité. La classe polymorphe QueuedItem a normalement certaines méthodes, comme la supprimer. Cependant, une méthode de suppression est différente, selon que l'objet est un bâtiment ou une unité et nécessite une manipulation différente.
En outre, la colonne de niveau est totalement insignifiante pour un élément de l'armée en file d'attente. Donc, ma question est, en fonction de ces besoins, quelle est la meilleure façon de concevoir cela? Devrais-je aller de l'avant avec 3 modèles (un élément mis en attente appartient toujours à une ville):
Building
Unit
QueuedItem -> queued_id, queued_type, city_id
Ou je aurais besoin d'ajouter des modèles plus intermédiaires? Qu'est-ce que tu penses ?
Oui, c'est ce que je pensais aujourd'hui, je pense que c'est probablement la meilleure voie à suivre. Mais pensez-vous qu'une file d'attente devrait être une classe concrète? Je pense que faire quelque chose comme un module mixin est probablement mieux, êtes-vous d'accord avec ça? Ensuite, le modèle concret BuildingQueue hériterait simplement. J'aime plutôt ça. – Spyros
Une classe de base ou un module combinable fonctionnerait parfaitement dans ce cas. Allez avec l'approche que vous aimez le plus :). – Bira