/key-group

Primary LanguageRuby

Задача

Есть сущность пользователь (User). Он может быть трех типов: Необходимо посчитать количество перепостов новости (а-ля в соцсети).

  • Администратор Прикладная структура новости:
  • Модератор 1) Заголовок
  • Исполнитель 2) Тело новости
  • Рекламодатель 3) Автор
  1. Время создания

Каждый тип юзера, характеризуется опеределенным набором свойств, какие-то свойства общие для всех типов пользователей, какие-то характеризуют конкретного. Требуется организовать структуру для реализации перепоста новости (т.е. создание новости с указанием исходной новости). Перепост может быть как исходной новости, та и её перепоста (без ограничений уровня).

Требуется реализовать метод подсчёта количества всех перепостов исходной новости (т.е. всех элементов дерева перепостов этой новости). Обязательные общие свойства: Нужен только код бэк-энда без вьюх.

  • почта;
  • имя;
  • телефон.

Свойства рекламодателя:

  • должность;
  • название организации.

Необходимо создать небольшое Rails-приложение для работы с пользователями (достаточно только с рекламодателем). Что требуется:

  1. Миграция БД

  2. Реализовать создание, редактирование и json-представление данных о пользователе (рекламодателе). С сохранением в базу и валидациями. Вьюхи делать не нужно, достаточно рабочих роутов. Роуты должны быть доступны только для ajax-запросов.

  3. Бизнес логику и валидации реализовать не в моделях ActiveRecord.

  4. В качестве БД использовать PostgreSQL (mysql тоже сойдёт).

  5. Индивидуальные свойства пользователя сохранить в отдельную таблицу.