Quand au fait que tu puisses t'envoyer un message à toi même, tu peux gérer
cela avec une simple validation (avec la méthode 'validate' ou en écrivant
un validator)

Le 22 février 2012 19:21, Florian Dutey <[email protected]> a écrit :

> belongs_to :sender, :class_name => 'User'
>
> Pour ma part, je préfère appeler ma clef étrangère "sender_id" que
> "user_id" parce que cela précise le role de l'utilisateur.
> user n'a pas vraiment de sémantique dans le contexte d'un message. sender
> en a beaucoup plus =).
>
> Pour ce qui est des récipients, en déclarant un has_many :users, :through
> => :recipients dans le modèle message, tu peux dès lors passer les
> récipients via des input hidden avec comme name "user_ids[]" dans ta vue
> (facebook style). Y'a d'autres solutions mais celle ci a le mérite d'etre
> clean et facilement maintenable.
>
> Le fait d'avoir un modèle séparé te permet effectivement de gérer le
> read/unread par destinataire, mais aussi de gérer la suppression:
>
> Quand deleted est à true dans la table recipient, on n'affiche plus le
> message pour l'utilisateur concerné.
> Quand tous les destinataires ET l'émetteur ont supprimé le message (on
> gère sender_deleted dans la table message), on peut supprimer physiquement
> le message et toutes ses associations pour libérer un peu d'espace. Tu n'es
> pas obligé de faire ca si ton appli est destinée à un nombre restreint
> d'utilisateurs.
>
> Le 22 février 2012 18:24, Nikog <[email protected]> a écrit :
>
>
>>
>> Le 22 février 2012 17:25, Guillaume Betous <[email protected]>a 
>> écrit :
>>
>> De plus cet intermédiaire (table recipients) te permet de rajouter des
>>> "gadgets" qui sont souvent demandé vers la fin du projet, quand tout marche
>>> (histoire de tout casser si on n'a pas prévu), comme l'info "read/unread".
>>>
>>> gUI
>>>
>>
>> oui je pense que je vais partir la dessus. Merci
>>
>>>
>>> Le 22 février 2012 21:53, thierry henrio <[email protected]> a
>>> écrit :
>>>
>>> 2012/2/22 Nikog <[email protected]>
>>>>
>>>>> Merci de vos réponses,, la gastro est passée par là alors 24 h00 de
>>>>> black out :-(.
>>>>>
>>>>> J'ai compris le truc mais pourquoi faudrait-il un modèle Sender ?
>>>>> Je pensais juste utiliser User et Message et mettre en effet le
>>>>> sender_id dans le modèle Message en y assignant l'id du user expediteur. 
>>>>> Je
>>>>> dis des bétises ?
>>>>
>>>>
>>>> User has_many :messages et Message belongs_to :user permet de chercher
>>>> les messages que j'ai envoyé (regarde
>>>> http://guides.rubyonrails.org/association_basics.html#the-belongs_to-associationpour
>>>>  changer le nom du champs (sender_id))
>>>>
>>>> Et un message n'a pas encore de destinataires ...
>>>>
>>>> Oui bien sur, c'est la relation de base, mais comme je peux envoyer un
>> message à moi même et à une ou plusieurs personnes cela ne va pas suffire.
>>
>> Merci
>>
>> 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]

Répondre à