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]
