我需要能够为用户安排提醒。所以我想我可以创建一个基本模型Reminder
并使用 STI 来创建覆盖函数的后代类fire()
,在提醒触发时调用。但是不同的用户角色有类似的提醒类型。所以他们需要命名空间,例如Adult::BrushTeethReminder
向用户发送电子邮件,Kid::BrushTeethReminder
在孩子的 FB 墙上发帖。
STI 有可能吗?如果有,怎么办?我看到的其他方式是只为模型名称添加前缀,例如KidBrushTeethReminder
. 或者更深入——编写一个根据类型创建对象的工厂方法。还是有更清洁的方法?