Rails 3.0 est sorti ! - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Général (https://jeuweb.org/forumdisplay.php?fid=36) +--- Forum : Blabla (https://jeuweb.org/forumdisplay.php?fid=42) +--- Sujet : Rails 3.0 est sorti ! (/showthread.php?tid=5130) |
RE: Rails 3.0 est sorti ! - popayan - 06-09-2010 Sephi, je viens de lire le draft sur Spherium et j'aurais une question: Dans le helper pour l'affichage de la map, tu utilises la méthode inject. Pourrais tu détailler son fonctionnement? Est-ce normal que je ne trouve pas trace de cette méthode dans les API rails? RE: Rails 3.0 est sorti ! - Sephi-Chan - 06-09-2010 La méthode inject appartient au module Enumerabe. Son fonctionnement est un peu étrange au début, l'approche ressemble à de la programmation fonctionnelle. Mais une fois qu'on le connaît (et qu'on pense à s'en servir…), ça devient très pratique.
Plutôt qu'une explication, je vais te proposer une écriture alternative.
En fait, inject permet simplement d'être plus concis. Voici un billet de blog qui présente des cas d'utilisation de inject : Jay Fields — Ruby inject. Sephi-Chan RE: Rails 3.0 est sorti ! - popayan - 06-09-2010 Effectivement, la seconde méthode est plus claire, merci RE: Rails 3.0 est sorti ! - Sephi-Chan - 06-09-2010 Bof… inject permet d'injecter du contenu (concaténer, additionner, remplacer, etc.) dans une variable mémorisée au fil des itérations. C'est très clair, c'est simplement inhabituel quand on vient d'un autre langage. Contrairement à la notation suivante, très pratique et lisible avec un peu d'habitude, mais qui n'est pas limpide :
Sephi-Chan RE: Rails 3.0 est sorti ! - Chandler - 09-09-2010 Dis moi Sephi dans ton lien pour les tutoriaux Ruby ce sont les meilleurs selon toi? Le siteduzero a bonne réputation mais pour Ruby je trouve que le tutoriel est pas clair (surtout destructuré). EDIT: Ok j'ai pas vu qu'ils étaient de toi, forcément tu vas pas me dire qu'ils sont nuls :$ RE: Rails 3.0 est sorti ! - Thib4s - 09-09-2010 Bah c'est pas a proprement dit un tutorial le Draft hein Sephi montre juste comment il crée son propre jeu en utilisant les meilleurs pratiques possible ^^ En gros c'est observer du bon code, le comprendre et pouvoir l'adpater pour le réutiliser Pour moi une belle mine d'or pour commencer Rails c'est http://railstutorial.org/book RE: Rails 3.0 est sorti ! - Sephi-Chan - 09-09-2010 Concernant les tutoriels, ils servent juste à présenter le langage, rien d'avancé. Et pour les drafts, je ne sais pas si ce sont les meilleures pratiques, mais ce sont les miennes du moment. Avec en plus certaines spécificités pour être didactique. ^^ RE: Rails 3.0 est sorti ! - popayan - 01-10-2010 J'aimerai que quelqu'un me donne un éclaircissement sur le callback after_add, j'ai fait
mais ca n'a pas l'air de faire ce que je voudrais que ca fasse :'( je ne vois pas dans ma console s'exécuter le count par exemple... RE: Rails 3.0 est sorti ! - Sephi-Chan - 01-10-2010 Crée plutôt un nouveau sujet pour ce genre de question, assez spécifique. Je n'utilise pas souvent ces callbacks (ils sont peu utilisés de manière générale, car leur documentation est assez succinte et que leur implémentation initiale était un peu bancale) et je ne peux pas faire de test dans l'immédiat, mais j'ai peut-être des pistes. Es-tu sûr que self correspond bien à ton objet (je ne sais pas dans quelle classe tu es puisque tu as tronqué ton modèle) ? La méthode update_attribute effectue une sauvegarde de l'objet, tu n'as pas besoin d'appeler save derrière. Enfin, cette manipulation devrait plutôt se faire dans le callback after_create de ton modèle de relation, puisque after_add est appelé même si l'association n'est pas sauvegardé en base de données alors que dans l'esprit, tu ne veux passer le status à 1 que si tu as atteint les 6 joueurs. D'ailleurs, je te conseille d'utiliser une constante avec un nom parlant plutôt qu'un nombre (même si cette constante contient en effet un nombre). Exemple si j'implémentais ça comme je te le conseille (en extrapolant sur les modèles) :
Quand je serais chez moi, je ferais quelques essais pour t'indiquer comment ça aurait pu avoir le comportement souhaité. Sephi-Chan |