2013/6/11 Guirec Corbel <[email protected]>

> 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?
>
>
Quand ca te semble Logique.



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

Ca peut être pratique.


>
> Quant aux helpers... ils servent à créer du html qui ne se sert d'aucun
> modèle?
>

Où limiter ta vue.


>
> Quel est votre avis là dessus? Quels sont vos techniques? Avez vous des
> bons exemples?
>

C'est simple. Tu prend la loi de sandi Metz avec ses 3 régles. Tu la merge
avec le Gang Of Four. Ensuite tu fais un produit en croix sur le concept de
MVC. Tu fais un #to_json sur le résultat. Là tu obtiens un JSON formaté
pour le REST qui permet d'être chargé dans une API SOAP. Avec le quotien
DCI, tu auras ta réponse.

42

-- 
Cyril Mougel
http://blog.shingara.fr

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