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 https://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 [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 .
