• [^] # Re: Concours de b.....

    Posté par (Mastodon) . En réponse à la dépêche Sortie de Ruby on Rails 2.0. Évalué à 2.

    Il y a peut-être un truc qui n'est pas clair dans ce que je dis au début. La raison pour laquelle on peut remplacer ActiveRecord par autre chose assez simplement, c'est que Ruby utilise le duck typing: si ça ressemble à un canard, et que ça fait kwak comme un canard, alors c'est un canard.

    Donc si ton modèle ressemble à un modèle ActiveRecord, tu peux l'utiliser à la place d'un modèle ActiveRecord, n'importe où. Ressembler, en Ruby, ça veut dire répondre aux mêmes méthodes (de la même manière, c'est à dire en prenant les mêmes paramètres et en renvoyant le même type de valeur).

    Comme le code est assez bien découpé, le nombre de méthodes auxquelles un objet doit répondre pour ressembler à un objet AR est relativement réduit. C'est pour ça qu'il doit être assez facile d'implémenter un autre système pour avoir des données persistantes. Tu as besoin d'avoir de quoi enregistrer, lire, modifier, obenir la liste des attributs, éventuellement leurs types, et c'est à peu près tout.

    (Mais, peut-être faut-il encore le préciser, dans de nombreux cas tu n'as même pas besoin que tes modèles ressemblent à des modèles AR)