Dis moi si je me trompe mais Virtus est simplement un module qui permet
d'assigner des variables facilement. Ça remplace un peut attr_accessor mais
ça accepte les Hash dans l'initialize. Il ne gère pas la sauvegarde, la
délégation à d'autres modèle ou les comportements à la sauvegarde. Est-ce
que j'ai bien compris?


Le 5 mars 2014 10:53, apneadiving <apnea.diving.d...@gmail.com> a écrit :

> Le form object est un excellent design pattern qui evite de surcharger le
> modele en validations inutiles (validate le first name, mais j'ai un batch
> avec uniquement des emails, on va pas faire un validate false...).
>
> Ca rejoint exactement ce que dit Olivier avec sa notion de contexte qui
> est primordiale.
>
> Ceci dit c'est tellement simple de creer une classe de form object (avec
> virtus notamment) que le gem me semble un peu superflu.
>
> Quoiqu'il en soit il a le merite de promouvoir la good practice, ce qui
> est deja tres bien.
>
> Ben
>
>
> On Thursday, February 27, 2014 3:57:45 PM UTC+1, Guirec Corbel wrote:
>>
>> Bonjour à tous,
>>
>> Je voulais vous annoncer que j'ai fait une gem sur les form objects :
>> https://github.com/GCorbel/activeform-rails.
>>
>> La raison qui ma mener à faire cette gem c'est tout simple que je trouve
>> que les forms objects est un très design pattern, assez rapide à
>> comprendre, à mettre en place et le bénéfice est rapide. Comme recorder 20
>> fois la même chose n'est pas mon activité préféré j'ai cherché une gem. Je
>> suis rapidement tomber sur reform et après deux pull requests  (
>> https://github.com/apotonick/reform/pull/63 et ht
>> tps://github.com/apotonick/representable/pull/71) je me suis rendu
>> compte que c'est assez instable et je trouve qu'il y a beaucoup de chose
>> pour rien. Je n'ai pas trouvé de solution satisfaisante donc je l'ai fait
>> moi même.
>>
>> J'ai changé un peu l'utilisation mais rien de révolutionnaire.
>>
>> Premièrement il faut toujours spécifier un objet lors de
>> l'initialisation. Dans reform c'est `UserForm.new(user)` et moi j'ai
>> `UserForm.new(user: user)`. Ça permet de simplifier les cas ou il y a
>> plusieurs modèles pour l'utilisation et également dans la programation de
>> la gem.
>>
>> Deuxièmement, dans reform il faut fait un `form.validate(params)` qui va
>> remplir les informations du formulaire. Il y a un `form.from_hash` mais
>> caché. J'ai choisi de rendre ça explicite et de faire
>> `form.fill_attributes(params)` puis un `form.valid?`.
>>
>> Laisser moi savoir ce que vous en pensez.
>>
>> J'ai vu qu'il y a eu une présentation au Paris RB sur les form objects.
>> C'est dommage pour moi car c'est une présentation que j'aurai voulu faire
>> si j'arrive a venir cette année. *SVP, laissez moi les services
>> objects!!!!!!*
>>
>  --
> --
> 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 en recevoir les messages,
> envoyez un e-mail à l'adresse railsfrance+unsubscr...@googlegroups.com.
> Pour obtenir davantage d'options, consultez la page
> https://groups.google.com/groups/opt_out.
>

-- 
-- 
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/groups/opt_out .

Répondre à