Есть сущность пользователь (User). Он может быть трех типов:
- Администратор
- Модератор
- Исполнитель
- Рекламодатель
Каждый тип юзера, характеризуется опеределенным набором свойств, какие-то свойства общие для всех типов пользователей, какие-то характеризуют конкретного.
Обязательные общие свойства:
- почта;
- имя;
- телефон.
Свойства рекламодателя:
- должность;
- название организации.
Необходимо создать небольшое Rails-приложение для работы с пользователями (достаточно только с рекламодателем). Что требуется:
-
Миграция БД
-
Реализовать создание, редактирование и json-представление данных о пользователе (рекламодателе). С сохранением в базу и валидациями. Вьюхи делать не нужно, достаточно рабочих роутов. Роуты должны быть доступны только для ajax-запросов.
-
Бизнес логику и валидации реализовать не в моделях ActiveRecord. Модели использовать только для доступа к БД. Можно заменить ActiveRecord, например, на sequel, или вообще чистый SQL. Сущность - это не модель ActiveRecord, а свой класс.
-
В качестве БД использовать PostgreSQL (mysql тоже сойдёт).
-
Индивидуальные свойства пользователя сохранить в отдельную таблицу.