Je pensais juste au fait d’avoir une option/instruction qui dit de prendre en compte les validations du modèle lors de la validation.
Dans mon cas c’était un peu plus compliqué parce que j’avais une association à valider qui était celle contenant les validations Devise mais en gros j’avais cette méthode dans mon FormObject: def valid? [super, account.valid?].reduce(:&) end Simon Courtois On 4 mars 2014 at 12:27:00, Guirec Corbel (guirec.cor...@gmail.com) wrote: @simon, merci pour tes idées. Je vais regarder à pour les dates. Pour la validation des modèles tu veux dire que le form objet ferais une réflection des validations des modèles si jamais il y en a certaines manquantes dans le form. Par exemple, si on un form comme ceci: class Form include ActiveForm::Form include ActiveForm::ValidationReflector properties :username, on: :user self.main_model = :user end et un modèle comme ceci: class User < ActiveRecord::Base validates :username, precense: true end il faudrait que form.valid? retourne false et remplissent les erreurs du modèle. C'est ça? Ça semble être une bonne idée. Je suis effectivement intéressé par le code que tu as fait. @florian, Je pense qu'il a certain conceptes qu'il ne faut pas oublier dans les autres languages. Mettre tout dans le modèle fait qu'il devient difficile à tester. De plus, séparer les responsabilités permet une meilleure réutilisation des objets ainsi qu'une meilleur maintenabilité. Je suis très heureux d'utiliser ces conceptes. Bye! Le 2014-03-04 04:17, Florian Dutey a écrit : Je viens de jeter un coup d'oeil a la gem, je vous vois parler de ServiceObjects, de FormObjects... Vous seriez pas plus heureux a faire de la J2EE, voire meme du ZendFramework? :o /troll Le 4 mars 2014 17:02, Simon Courtois <happyn...@gmail.com> a écrit : Salut Guirec, J’ai pas encore eu l’occasion de tester ta gem mais je peux déjà te donner deux points sur lesquels j’ai galéré avec Reform et dont tu peux tenir compte si tu le veux :) 1. Gestion des champs date. La conversion des champs de type date_select est faite très proche de ActiveRecord et du coup on la considère souvent comme acquise mais en général avec les FormObjects ce n’est pas pris en compte et ne marche pas. 2. Permettre de facilement appeler les validation des modèles si on le souhaite. Cas pratique, un form d’inscription qui tape sur Devise. Quand le modèle implemente :validatable ça peut être sympa de pouvoir facilement appeler ces validations en plus de celles du FormObject. Je pourrais te ressortir le code que j’ai utilisé pour faire marcher ça avec Reform ;) En tout cas merci pour tes efforts, c’est cool :) Simon Courtois On 4 mars 2014 at 09:49:34, Florian Dutey (fdu...@gmail.com) wrote: Si ton projet fait le boulot et que tu n'as rien a y ajouter, n'ajoute rien. Pour ma part, ce que je regarde de pres quand je cherche des gems, c'est si elles ont evolue avec les versions de rails... autrement... Le 28 février 2014 22:25, Guirec Corbel <guirec.cor...@gmail.com> a écrit : J'ai encore une question. J'ai choisi de permettre l’instanciation d'une formulaire comme ceci `Form.new(model: model)` plutôt que de mimer ActiveRecord et prendre les paramètres comme ceci : `Form.new(params[:model])`. J'ai fait ça car je pense que ce n'est pas au form object de faire des find et de savoir comment instancier des modèles. Qu'en pensez-vous? Merci! Le 28 février 2014 09:00, Guirec Corbel <guirec.cor...@gmail.com> a écrit : Bonjour les amis, Depuis la publication de la gem sur rubyweekly, je suis devenu la plus grande star d'internet avec 70 followers sur ce projet. Mon problème, maintenant, c'est de faire évoluer la gem. Je crois que la gem remplis complètement le rôle qu'il a à tenir étant donné que ce rôle est assez simple. Si je ne fait pas évoluer la gem elle va tomber dans les non maintenus et j'aimerai beaucoup faire un projet actif. En résumé, j'aimerai beaucoup profiter de la popularité relative de mon projet pour continuer. Malheureusement, je n'ai pas d'idée pour aller plus loin. Qu'en pensez-vous? Avez-vous des idées d'amélioration? Est-ce si grave que ça d'avoir un projet qui intéresse des gens mais inactif? Bye! Le 27 février 2014 13:00, Guirec Corbel <guirec.cor...@gmail.com> a écrit : Regarde ça : http://vimeo.com/85181640 Le 27 février 2014 12:45, Guillaume Betous <guillaume.bet...@gmail.com> a écrit : Oulah, pardon... je ne sais pas comment j'ai lu la première fois, mais c'est bon. Je partais je ne sais pas pourquoi sur un concept fumeux de POO mais en fait c'est plus simple que ça :) Intéressant comme idée. gUI Le 27 février 2014 18:43, Guillaume Betous <guillaume.bet...@gmail.com> a écrit : > Pas mal :) > > Sérieusement, je sais pas ce que c'est un form object (et la petit > intro sur le Github de Guirec ne m'a pas aidé). Un article de blog à > conseiller ? > > gUI > > Le 27 février 2014 18:41, Guirec Corbel <guirec.cor...@gmail.com> a écrit : >> Regardez dans la partie Libraries ici : http://rubyweekly.com/issues/184. >> Avec ça, c'est la gloire assurée. >> >> >> Le 27 février 2014 11:57, Sylvain Abélard <sylvain.abel...@gmail.com> a >> écrit : >> >>> >>> >>> On Thursday, February 27, 2014 5:02:30 PM UTC+1, Guirec Corbel wrote: >>>> >>>> Ne vous inquiétez pas, c'était juste une blague. Je ne veux empêcher >>>> personne de faire ce qu'il veut. En plus, c'est assez difficile pour moi de >>>> me déplacer à Paris, je suis même pas certain d'y arriver cette année. >>>> >>>> J'aurais pas du mettre cette phrase, visiblement ça fait un troll. >>> >>> >>> Non, mais je pense que beaucoup ont cette fausse perception alors je saute >>> sur l'occasion pour clarifier ;) >>> >>> Have fun, >>> >>>> >>>> Le 27 février 2014 10:58, Sylvain Abélard <sylvain...@gmail.com> a écrit >>>> : >>>> >>>>> Bonjour, >>>>> >>>>> à ParisRB on aime encourager les gens à faire des talks, et on aime >>>>> aussi les invités :) >>>>> Il n'y a pas de sujet "réservé" : chacun sa solution, chacun son gem >>>>> favori voire sa façon de l'utiliser, chacun son retour d'expérience. >>>>> >>>>> À une époque on a eu 3 talks sur les APIs en 3 mois, chacun sur un >>>>> contexte différent : je trouve ça très enrichissant ! >>>>> Vous n'êtes pas d'accord ou vous voulez compléter un talk ? Faites le >>>>> vôtre ! >>>>> >>>>> Sur des conférences, on pourrait se dire que "trop d'un seul sujet c'est >>>>> pénible", sur un meetup mensuel c'est super : en trois mois, ceux qui ne >>>>> se >>>>> sont jamais penché sur le sujet ont un bel éventail pour décider quand ça >>>>> leur arrivera, ceux qui ont commencé à se lancer suite au 1er talk auront >>>>> des questions pour le 2e, et ainsi de suite. >>>>> >>>>> Bref : à moins que vous soyez 2 collègues de la même boîte sur le même >>>>> projet avec les mêmes gems... >>>>> Proposez et venez :) >>>>> >>>>> >>>>> >>>>> On Thursday, February 27, 2014 4:37:57 PM UTC+1, Philippe Creux wrote: >>>>>> >>>>>> Ah, même souci ici, je comptais faire un lightning talk sur les >>>>>> services objects à VanRuby (Vancouver) ce soir... mais il semble qu'il y >>>>>> ai >>>>>> déjà deux autres personnes qui en parlent... :-) >>>>>> >>>>>> φ >>>>>> >>>>>> On Feb 27, 2014 6:57 AM, "Guirec Corbel" <guirec...@gmail.com> 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 >>>>>>> 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 rails...@googlegroups.com >>>>>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse >>>>>>> railsfrance...@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...@googlegroups.com. >>>>>>> >>>>>>> Pour plus d'options, visitez le site >>>>>>> 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 >>>>> rails...@googlegroups.com >>>>> Pour résilier votre abonnement envoyez un e-mail à l'adresse >>>>> railsfrance...@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...@googlegroups.com. >>>>> Pour plus d'options, visitez le site >>>>> 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 . >> >> >> -- >> -- >> 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 . > > > > -- > Pour la santé de votre ordinateur, préférez les logiciels libres. > Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/ > Browser le web : http://www.mozilla-europe.org/fr/products/firefox/ > Suite bureautique : http://www.libreoffice.org/download/ -- Pour la santé de votre ordinateur, préférez les logiciels libres. Lire son mail : http://www.mozilla-europe.org/fr/products/thunderbird/ Browser le web : http://www.mozilla-europe.org/fr/products/firefox/ Suite bureautique : http://www.libreoffice.org/download/ -- -- 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 . -- -- 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 . -- -- 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 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 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 . -- -- 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 .