Hello,

Le bon moment pour utiliser un presenter, c'est avant tout une décision
esthétique. La plupart du temps, les méthodes des presenters ne seront
utilisées qu'une seule fois, il n'y a donc pas ici de règle de
refactoring applicable à tous les coups : le bon moment d'utiliser un
presenter est celui où tu estimes qu'il y a trop de logique de
présentation dans ta vue.

Les helpers sont très similaires, mais ont plus vocation à être
réutilisés, sans être liés à une resource particulière.

Tu peux t'en servir par exemple pour formatter des messages
d'erreur, générer des boutons qui sont composés de plusieurs éléments
mais sont trop succints pour mériter un partial, etc.

Si tu t'apprêtes à utiliser un presenter pour n'y mettre qu'une ou deux
méthodes, il serait sûrement plus approprié d'utiliser des helpers
égalements.

On 11:03 Tue 11 Jun     , Guirec Corbel wrote:
> 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 
> .
> 
> 


-- 
Olivier El Mekki.

-- 
-- 
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 .


Répondre à