Pour ma part, je suis en accord avec moi même. J'extrait tout le comportement qui n'est pas directement relatif à la base de données et à la persistance dans des services objects ou des form objects.
Le 4 mars 2014 10:11, Simon Courtois <[email protected]> a écrit : > Je rejoins olivier sur le sujet. Dans le cas de validations contextuelles > c'est juste le rêve. > > Pour le reste quand je peux laisser dans le modèle pas de souci. Au pire > extraire jamais y a besoin est assez facile :) > > Sent from my iPhone > > On 4 mars 2014, at 16:06, Florian Dutey <[email protected]> wrote: > > javoue olivier... > bienheureux si tu utilises rails car la solution hybride est possible. jy > penserai si jai besoin de faire un wizard ou si mes workflow se > complexifient a ce point. parce que c vrai, un wizard avec active record, c > lenfer > > Le mardi 4 mars 2014, Olivier El Mekki <[email protected]> a écrit : > >> par contre, le fait qu'un modele ne porte pas ses validations, je > trouve ca > >> moisi. > >> un User a forcement un nom de famille, quel que soit le projet dans > lequel > >> tu lutilises. ca fait partie du metier du User et pas de son form. > > > > J'utilise un concept proche de ces FormObject, je les nomme Context. > > L'idée est également d'encapsuler les validations (ainsi que les #permit > > de strong_parameters) dans une classe dédiée. > > > > Il y a certes des champs qui peuvent être toujours obligatoire, mais le > > contraire peut aussi être vrai (des champs qui sont *parfois* > > obligatoires). > > > > Typiquement, j'ai le cas dans mon application actuelle où un user peut > > être quelqu'un qui s'est inscrit sur le site ou un client/lead dont les > > admins ont enregistré les infos depuis le backend (et qui peut > > éventuellement avoir un accès sur le site ensuite). Au début, j'étais > > parti sur du STI, avec BasicUser, OnlineUser et OfflineUser, mais comme > > d'hab, ça a fini par poser des problèmes (ah au fait, un user peut > > devenir Customer, maintenant). > > > > J'aime bien l'idée d'extraire les validations dans un contexte parce que > > tout à coup, il n'y a plus besoin de STI, de `validates :if` etc. Si ce > > n'est pas la même chose d'enregister un Order en étant admin et en étant > > user, je peux le spécifier sans complications. Et si jamais un champs > > est vraiment toujours obligatoire, well, je peux toujours ajouter la > > validation dans le modèle, ce n'est pas une religion. > > > > -- > > -- > > 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 . > > > > -- > -- > 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 en recevoir les messages, > envoyez un e-mail à l'adresse [email protected]. > 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 > [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 en recevoir les messages, > envoyez un e-mail à l'adresse [email protected]. > 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 [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 .
