Ok, mais je voulais dire carrément mettre sender_id dans le modèle message. Du coup c'est un simple "has one sender", sans le through. Pas de contre indication ?
gUI Le 20 février 2012 16:49, Florian Dutey <[email protected]> a écrit : > On peut très bien utiliser un has_one :sender, :through => :recipients au > lieu d'un has many. > C'est plus logique en effet =). > > Le 20 février 2012 16:22, Guillaume Betous <[email protected]> a > écrit : > > Questions : >> >> En faisant comme ça, tu autorises le fait qu'un message a plusieurs >> senders ? >> >> Pour tu n'as pas laissé sender_id dans le modèle message ? >> >> gUI >> >> Le 20 février 2012 15:58, Florian Dutey <[email protected]> a écrit : >> >>> Un modèle "recipient" avec >>> >>> - sender_id (user) >>> - receiver_id (user) >>> - message_id (message) >>> - read (boolean) >>> - deleted (boolean) >>> >>> me semble être la meilleure solution. >>> Ce modèle te permet d'adjoindre de nombreux comportements: >>> >>> * suppression par utilisateur tout en gardant la liste de tous les >>> destinataires >>> * gestion read/unread par utilisateur >>> * un message est détruit quand tous les receivers et le sender l'ont >>> marqué comme détruit >>> >>> J'avais eu la même problématique que toi et j'avais envisagé toutes les >>> solutions. J'avais retenu celle-ci. >>> >>> Le 20 février 2012 15:23, Nikog <[email protected]> a écrit : >>> >>> Bonjour >>>> >>>> j'ai un problème de conception sur une nouvelle application avec >>>> >>>> des Users qui peuvent envoyer des messages à plusieurs autres Users >>>> ainsi qu'à eux-mêmes. >>>> Et je veux pouvoir récupérer tous les messages envoyés par un user et >>>> tous ceux adressé à un user >>>> J'ai donc deux modèles >>>> >>>> User >>>> Message >>>> >>>> quelle est la relation que vous me conseillez entre les deux ? >>>> >>>> J'avais pensé faire comme des tags avec des cases à cocher avec une >>>> relation de type has_many through et un modèle intermédiaire mais j'ai peur >>>> que cela ne coince quelque part ... >>>> >>>> Merci de votre aide >>>> >>>> Nikog >>>> >>>> >>>> -- >>>> 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 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] >>> >> >> >> >> -- >> 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 >> [email protected] >> Pour résilier votre abonnement envoyez un e-mail à l'adresse >> [email protected] >> > > -- > 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] > -- 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 [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected]
