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]

Répondre à