2011-04-19 158 views
0

我需要能夠爲用戶安排提醒。所以我認爲我可以創建一個基本模型Reminder並使用STI創建子類,它們覆蓋函數fire(),在提醒觸發時調用。但不同的用戶角色具有相似類型的提醒。所以他們需要命名空間,例如Adult::BrushTeethReminder發送電子郵件給用戶,Kid::BrushTeethReminder兒童的FB牆上的帖子。STI +命名空間

STI可能嗎?如果是的話? 我看到的其他方式只是在KidBrushTeethReminder之前加上模型名稱的前綴。或者更深入 - 寫一個工廠方法,根據類型創建對象。或者有更清晰的方法嗎?

回答

1

我發現你可以在不同的命名空間中使用STI模型。你只需要將它們放在合適的子文件夾中。例如,Kid::BrushTeethReminder應該放在app/models/kid的文件中brush_teeth_reminder.rb