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