2012-11-24 44 views
0

现在我有一个名为Profile的模型,它与用户相关联(基本上在配置文件中保存与用户相关的所有信息,并且在用户中存储密码,last_sign_in, ...)。我希望能够向用户发送一些(每周)的电子邮件,我想知道如何在Profile表中添加一个新列。与(用户)配置文件相关的电子邮件通知

但是,我认为它可能发生,我也想每天发送,所以我想创建一个名为“通知”,与配置文件关联的新表。但是,我没有看到我应该做什么样的协会。

一个配置文件可以有很多通知,但一种通知可以在许多配置文件中。你们会怎么做?

谢谢!

+1

这取决于情况,如果你有预定义的通知列表并且不动态生成,那么它应该在两个模型中都是has_and_belongs_to_many,否则在配置文件模型中它应该像“has_many => notifications”,并且在通知模型中它应该像“belongs_to =>个人资料” – Jeet

回答

1

我认为这完全取决于您尝试完成的操作,听起来像您拥有通知类型以及针对配置文件的通知实例。

如果是这种情况,那么您通常会拥有一对多的关系,一个配置文件可以有多个通知;在您的个人资料模型中包含has_many =>通知。并且每个通知都有一个类型引用;在你的Notification模型中包括belongs_to => profile和has_many => notification_types。这意味着notification_type属于许多通知;在您的NotificationType模型中包含belongs_to =>通知。

0

我认为你不需要通知和配置文件/用户之间的任何关联。您可以创建另一个名为Notification的模型,并使用名为send_notification的类级别方法。然后,您可以随时发送通知。

如果您想跟踪是否发送通知。你可以只有一个状态/标志列配置文件。每当你发送通知更新该列。

这只是我的看法。