2010-12-07 8 views
1

Je travaille pour créer un modèle de notifications pour mes utilisateurs dans l'application. Les e-mails qu'ils reçoivent, etc.Rails - Création d'un modèle de notifications pour les utilisateurs

Je vais créer un UserNotifications modèle, avec un groupe de colonnes par paramètre qui sont binaires.

Ce que je n'ai pas encore appris avec Rails est que chaque utilisateur doit enregistrer dans le modèle UserNotifications. Comment puis-je faire ce qui suit:

  1. Lorsqu'un utilisateur est créé, ajoutez un enregistrement pour cet utilisateur dans la table UserNotifications?
  2. Gérez tous les utilisateurs existants dans le DB. Lorsque je migre, comment puis-je dire à Rails de créer des enregistrements UserNotification pour tous les utilisateurs de la base de données?

Merci de m'avoir expliquée. Je n'ai pas eu besoin de créer un tel modèle auparavant dans Rails.

Répondre

1

C'est le genre de chose que vous faites dans un after_create:

class User < ActiveRecord::Base 

    belongs_to :user_notification 
    after_create :create_user_notification 


    def create_user_notification 
    #additional logic probably needed per app requirements 
    user_notification.create 
    end 
end 

Dans votre migration, il vous suffit de itérer vos utilisateurs existants et appelez #create_user_notification

+0

Pourquoi belongs_to, pas has_one? – AnApprentice

+0

en essayant de migrer, j'obtiens "la méthode non définie' create_user_notification "pour # " – AnApprentice

+0

appartient_à vs has_one: Je suppose que la clé étrangère à la UserNotification est sur l'utilisateur, qui dans retrospect est probablement une hypothèse invalide. si la clé étrangère est sur le UserNotification il serait has_one, avec belongs_to sur le UserNotification – karmajunkie

Questions connexes