Dans Ruby on Rails, comment puis-je conserver les objets en mémoire entre les sessions

Je suis en train de construire quelque chose (en fin de compte un bijou, mais pour l'instant une application) qui fonctionne comme suit.

Supposons, par exemple, la DB enregistrements sont des races de chien. Il y a un Chien classe parent et un enfant de la classe pour chaque race. La réelle races ne sont pas connus jusqu'à l'exécution.

Lorsque le serveur commence il va charger des enregistrements à partir de la DB et instancier des instances de classes basé sur les enregistrements, par exemple, j'ai peut-être deux beagles et le caniche. Quand quelqu'un vient sur le serveur qu'ils souhaitent accéder à l'un de ces chien instances.

Pourquoi ne pas simplement créer une instance à la volée? Dans mon cas, le "chiens" sont essentiellement des classes qui contiennent un algorithme et des données. L'algorithme ne change pas, les données changent rarement (de l'ordre de jours), mais l'exécution de l'algorithme lui-même, qui utilise à la fois des données et la dynamique de données passées comme un timestamp, sera consulté à plusieurs reprises un deuxième.

Il serait ridicule d'avoir à recréer une instance de l'objet et de charger les données à chaque fois juste pour faire une demande seulement de le faire à nouveau sur la prochaine demande (la demande ne modifie pas l'état de l'objet). Je serais la création et la destruction de plusieurs objets une seconde quand je pourrais réutiliser le même objet.

il n'est pas judicieux de le garder dans la session, car quelqu'un qui veut un caniche ne devriez pas besoin d'avoir les beagles les informations dans sa session d'objet; c'est hors de propos (et n'est pas à l'échelle).

Comment dois-je persister ces objets en mémoire? En gros, je veux un tableau de recherche pour tenir les instances. En Java, je voudrais créer un singleton avec un certain type de table de hachage ou d'un tableau qui se trouve dans la mémoire. Dans les rails, j'ai essayé en créant une classe singleton dans le dossier lib. Je pense-j'ai peut-être pas la compréhension de ce droit; que l'instance (le fait que c'est un singleton est discutable) est en train d'être perdu lors de la session disparaît.

Le plus proche de la réponse que j'ai trouvé était http://www.ruby-forum.com/topic/129372 qui, fondamentalement, met tout dans des champs de la classe et les méthodes. De toute façon qui ne semble pas juste.

TIA!

Ajout: je viens de Java. En Java que je venais de créer un objet qui se trouve sur le tas ou peut-être dans une arborescence JNDI et que les requêtes HTTP sont venus dans ils seraient manipulés par un servlet ou EJB ou certains par-requête élément qui pourrait alors accéder à l'objet persistant. Je n'arrive pas à trouver l'équivalent dans les rails.

source d'informationauteur hershey | 2010-07-28