1

Je suis aux prises avec la modélisation d'une ressource et sa disponibilité à l'aide des outils, gemmes ou plugins disponibles dans Rails.Modélisation de la disponibilité des ressources dans le temps avec des exceptions dans Rails

Fondamentalement, chaque ressource aura une disponibilité typique de 0..24 heures pour chaque jour (0,1,2,3,4,5,6) de la semaine. MAIS alors il y aura des exceptions qui doivent être considérées par exemple un jour férié ou un événement spécial qui devrait annuler la valeur par défaut pour ce jour de la semaine.

Je peux penser à deux approches générales (même si je suis sûr qu'il y en a plus). Un qui interrogerait le DB sur chaque demande et testerait la logique pour voir si la ressource est disponible à ce moment. Cela peut devenir fastidieux (prendre du temps) à mesure que le système se développe. L'autre exécuterait un processus (cron?) Toutes les x (5?) Min pour définir un booléen (AVAILABLE) sur chaque ressource dérivée en fonction des règles de disponibilité. Ce sont des approches générales qui pourraient, mais qui peuvent fonctionner, mais comment approcher le modèle/les classes est l'endroit où je pourrais vraiment utiliser quelques conseils.

Des pensées? Expérience? Gems/Plugins Je devrais être au courant?

Répondre

1

Pas sûr de l'applicabilité dans votre application, mais il y a une jolie gemme Ruby appelé ice_cube avec peut être utilisé pour modéliser les dates et les heures récurrentes. Vous pouvez configurer un planning pour vos ressources en spécifiant leurs règles de disponibilité et les cas d'exception. La planification peut être sérialisée à la base de données en tant que YAML (disons dans un champ de texte) pour chaque ressource.

Lorsque vous avez besoin de voir si une ressource particulière est disponible, il vous suffit de la retirer et de la demander au ice_cube si une date/heure en question croise ou non ses règles. C'est très rapide et efficace aussi.

+1

Savez-vous peut-être avec quelle facilité/rapidité, en utilisant ice_cube, je pourrais chercher parmi des milliers d'enregistrements pour trouver ceux qui sont "disponibles" à un moment donné? – Meltemi

Questions connexes