Bonjour, Aujourd'hui je pose une question que je trouve un peu basique mais je suis totalement perdu : Quand utiliser draper, des presenters, des helpers, des scopes ou des partials?
J'ai lu le post de Philippe Creux : http://reverbhq.com/blog/2012/08/building-web-apps-with-activeadmin/ et je suis d'accord avec lui. On devrait utiliser draper quand on a besoin d'une action simple agissant sur un modèle. Un presenter contient une logique plus complexe agissant sur plusieurs modèles. J'aime bien la méthode de Ryan Bates présentée ici : http://railscasts.com/episodes/287-presenters-from-scratch, le problème, pour moi, c'est qui créer une variable "user_presenter" qui délègue des fonctions à sont modèle "user". Si l'on a beaucoup d'attributs ça peut devenir compliqué. Je pense que l'on ne devrait pas pour autant utiliser des fois "user_presenter" et d'autres fois "@user". Je n'aime pas non plus le fait d'instancier un objet "@presenter" dans le contrôleur. Ça viole une des lois de Sandi Metz. En ce qui concerne les partials, ça sert à décomposé de gros bloques de code dans de plus petits. Je m'interroge au niveau des scopes sur le fait d'appeler une fonction d'un modèle dans une vue. Par exemple, si on fait ceci : <% User.active_users.each do |user| %> .... <% end %> Je ne suis pas certain que ça soit une bonne pratique, qu'en pensez-vous? Quant aux helpers... ils servent à créer du html qui ne se sert d'aucun modèle? Quel est votre avis là dessus? Quels sont vos techniques? Avez vous des bons exemples? Bye! -- -- 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 [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] --- 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 [email protected]. Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .
