@Julien Si ça peut te rassurer, ce que j'ai noté ici je ne le respecte pas toujours à la lettre, c'était pour guider le topic. J'ai noté contrainte, mais c'est plus "J'essaie de suivre les best pratice de base".
Ces contraintes ont clairement fais leur preuves dans mes devs, grâce à ça j'ai éliminé une tonnes de bug (j'ai récupéré l'appli apres un premier prototype), et j'ai pas mal accéléré la vitesse d'ajout de feature. Le jeudi 22 janvier 2015 15:40:43 UTC+1, Archiloque a écrit : > > Hello, > > je trouve que tu t’imposes beaucoup de contraintes: avoir des principes > c’est bien quand ça apporte des choses, mais quand ils se transforment en > contraintes qui vont t’ajouter de la complexité seulement pour respecter > des règles à la lettre je préfère être accommodant. > > #require ‘troll sur j2e' > > Julien > > Le 22 janv. 2015 à 15:06, Tim <itsumo....@gmail.com <javascript:>> a > écrit : > > Salut à tous > > Question purement théorique, mon problème étant déjà résolue, mais > j'aimerais tout de meme savoir si il existe une autre (surement) voir une > meilleure facon de le résoudre. > > > Le problème est simple, > j'ai très souvent des vues qui nécessitent la combinaison de trois objets > pour afficher toutes les informations nécessaires. > Je m'impose comme contraintes : > - éviter toute logique dans le code html > - éviter de passer plus d'1 objet à ma vue (j'utilise render: 'ma/page', > locals: ... ) > - ne pas utiliser les helpers de rails (Des modules chargé sur toutes les > pages ? non merci) > - ne pas utiliser de décorateur (comme le gem drapper) car je vais me > retrouver avec un fichier de 600 lignes car je vais cumuler toutes les vue > dans ce même fichier. > > Je vais tenter un exemple pour vous montrer ce que j'ai fait : > > Je veux afficher la page admin/articles/:id > Sur cette page, je veux toutes les informations lié à cette article (de > pres ou de loin et avec des statistiques sur le mois précédent): > nombre de fois consulté, provenance géographique, différence avec le mois > précédent....etc > > En gros pour afficher toutes les informations sur ma page j'ai besoin des > objets : > Article, Provenance, Consultation, et Statistique(Consultation, > Consultation - 1.month) > > Ce que j'ai fait > j'ai créé un dossier app/views_helper dans lequel j'ai créé le fichier > article_show.rb (qui est juste class ArticleShow; def initialize(...); end > ......) > Je l'instancie avec mes 3 objets, et je définis les méthodes utile pour la > vue. > Ca fonctionne très bien, le code est facilement testable. > > Le probleme : Lorsque quelqu'un va reprendre mon code, comment va-t-il > faire le lien entre app/views_helper/article_show.rb et admin/articles/:id > ? (certe en lisant le controlleur, là ou je l'instancie avant de le passer > à ma vue) > Existe t'il une convention qui normalise l'utilisation d'une classe > directement lié à une vue ? > Est ce que cette idée de classe lié à une vue est une hérésie ? > > Au départ je contais mettre mes classes directement dans > app/views/articles/mon_objet_pour_show.rb mais Rails ne la trouvait pas. > Et vous, comment codez vous vos vues complexes ? > > Dans l'attente de vos réponses, merci de votre attention ;) > > Bon dev. > > -- > -- > Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de > Google Groups. > Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse > rails...@googlegroups.com <javascript:> > Pour résilier votre abonnement envoyez un e-mail à l'adresse > railsfrance...@googlegroups.com <javascript:> > --- > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes > "Railsfrance". > Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le > concernant, envoyez un e-mail à l'adresse railsfrance...@googlegroups.com > <javascript:>. > Pour obtenir davantage d'options, consultez la page > https://groups.google.com/d/optout. > > > -- -- Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse railsfrance@googlegroups.com Pour résilier votre abonnement envoyez un e-mail à l'adresse railsfrance-unsubscr...@googlegroups.com --- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance. Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com. Pour plus d'options, visitez le site https://groups.google.com/d/optout .