2011-04-19 155 views
0

我需要能够为用户安排提醒。所以我认为我可以创建一个基本模型Reminder并使用STI创建子类,它们覆盖函数fire(),在提醒触发时调用。但不同的用户角色具有相似类型的提醒。所以他们需要命名空间,例如Adult::BrushTeethReminder发送电子邮件给用户,Kid::BrushTeethReminder儿童的FB墙上的帖子。STI +命名空间

STI可能吗?如果是的话? 我看到的其他方式只是在KidBrushTeethReminder之前加上模型名称的前缀。或者更深入 - 写一个工厂方法,根据类型创建对象。或者有更清晰的方法吗?

回答

1

我发现你可以在不同的命名空间中使用STI模型。你只需要将它们放在合适的子文件夹中。例如,Kid::BrushTeethReminder应该放在app/models/kid的文件中brush_teeth_reminder.rb