У меня есть большое приложение Rails, которое имеет 34 разных типа пользователей через одностраничное наследование. Когда приложение было первоначально спроектировано, предполагалось, что Пользователь будет иметь разные типы поведения, основанные на типе. Это предположение было неправильным, поэтому я ищу рефакторинг.Лучший способ обработки различных типов пользователей?
Вопрос в том, как бы вы реорганизовали пользовательский STI?
- Добавить тонну логических атрибутов пользователя (то есть.
User#is_employee?
,User.is_contractor?
) - Rename
User#type
кUser#user_type
и просто делать сопоставления строк на основе поля - Некоторые ужасны таблицы поиска решения
- Что-то я 'm missing ...
Чтобы уточнить, пользователю требуется «тип» для причин ACL, но с STI они действительно просто пустые модели a и STI вызывает проблемы со спеканием, общей болью в заднице и т. д.
Интересно и просто ... –