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]
