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 .