34 votes

machines à états ruby on rails

Je cherche à mettre en place une machine à états pour gérer un utilisateur qui passe par une série d'étapes sur une longue période de temps (semaines) avec des courriels et qui interagit ensuite avec l'application. J'ai regardé quelques plugins AASM et forks (il semble que cet espace de plugin soit devenu un peu chaotique) et je suis curieux de savoir ce que les gens recommanderaient.

J'ai vu l'AASM automatique de hashrocket, qui fait la transition entre les états en utilisant cron, et d'après le titre il semble qu'il pourrait faire l'affaire mais il ne semble pas y avoir de documentation nulle part et il ressemble plus à un squelette d'application qu'à un plugin.

31voto

Gokul Points 854

Je recommande machine_état .

Conçu pour être utilisé dans n'importe quelle application Ruby (plutôt que d'être spécifique à ActiveRecord/Rails), mais dispose d'un adaptateur pour ActiveRecord.

12voto

mwilliams Points 6748

Le RailsEnvy Le podcast a parlé de Alter Ego Il s'agit d'une implémentation d'une machine à états qui a l'air et l'air bien léchée et qui vaut la peine d'être examinée.

"AlterEgo est un du modèle de l'État tel qu'il est décrit par le Gang of Four. Il diffère des autres bibliothèques de machines à états Ruby en ce qu'elle elle se concentre sur polymorphe basé sur l'état de l'objet. En effet, elle En effet, elle m objet différentes "personnalités" en fonction de l'état dans lequel il se trouve".

7voto

John Points 1032

Je suis un grand fan des machines à états et j'ai utilisé le plugin acts_as_state_machine avec de bons résultats. Il est assez bien documenté (dans le livre "Practical Rails Plugins", par exemple) et suffisamment général pour que vous puissiez mettre en place votre propre solution.

3voto

Bastien Points 332

State Machine est celui qui devait être livré avec rails 3, je crois. Elle a été supprimée depuis. Elle peut être utilisée avec n'importe quelle classe ruby et offre une intégration avec :

  • Classes ActiveModel
  • Modèles ActiveRecord
  • Ressources DataMapper
  • Modèles MongoMapper
  • Modèles de suites

http://github.com/pluginaweek/state_machine

Il offre également une très bonne documentation.

2voto

srboisvert Points 7214

Je suis en train d'étudier Alter Ego. J'ai trouvé ceci tutoriel de François Beausoleil.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X