J'ai oublié de dire que, dans le cas des scopes, je parles de parties qui concerne la présentation, utilisés par un menu par exemple.
Une autre question, à partir de quel complexité faudrait t'il utiliser un presenter. Si on à ça par exemple : f.association :company, label_method: :company_name, value_method: :id, include_blank: false Est ce que ça serait utile de faire une fonction pour ça? Où mettre cette fonction si ça devient trop complexe? Le 11 juin 2013 10:43, Guirec Corbel <[email protected]> a écrit : > 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 .
