Разработка сложных приложения на Roda
Документация
- Конвенции по структурированию Roda-приложений
- Плагин hash_routes
- Плагин view_options
- Roda Framework Guide - Part 1
Код, реализованный на занятии, можно скачать по ссылке.
Задача
Доработайте приложение из предыдущего занятия, чтобы оно позволяло одновременно управлять и списком просмотренных фильмов, и списком участников кружка. Для реализации управления каждым из списков вам необходимо сформировать свои части маршрута и объединить их с помощью плагинов hash_routes
и view_options
.
Приложение должно позволять управлять списком членов кружка:
- Просматривать список всех членов кружка.
- Добавлять нового члена кружка.
- Изменять информацию о члене кружка.
- Удалять члена кружка клуба. При удалении кружка во всех связанных моделях пользователь должен заменяться на «неизвестный член клуба».
Член кружка описывается следующими полями:
- Имя
- Фамилия
- Псевдоним
- Дата вступления в клуб
- Дата выхода из списка активных членов клуба
Приложение должно позволять управлять списком просмотренных фильмов:
- Просматривать список фильмов, просмотренных членами кружка.
- Добавлять новый фильм в список фильмов.
- Изменять информацию о фильме.
- Удалять информацию о фильме.
- Добавлять отзыв о фильме.
- Изменять отзыв о фильме.
Фильм описывается следующими полями:
- Название.
- Продолжительность.
- Ссылка на кинопоиск.
- Отзыв.
- Автор отзыва.
Технические требования к реализации
- Приложение должно следовать схеме формирования сложных приложений Roda. Для каждого раздела должен быть предоставлен свой собственный контроллер, обработчик маршрутов.
- Данные приложения можно сохранять в оперативной памяти, но рекомендуется сформировать модели Sequel.
- При обработке данных с формы должна быть реализована проверка корректности ввода на стороне сервера. Недостаточно добавить ограничения в HTML-поля.
- При возвращении пользователю формы, в которой были допущены ошибки, её поля должны быть заполнены данными, которые указал пользователь на предыдущем шаге.
Рекомендации по организации маршрутов
Ваше приложение должно обрабатывать следующие запросы:
get /
- перенаправление на/movies
.- Маршруты для работы с данными об участниках.
get /members
- отображение списка участников. Должен поддерживаться постраничный просмотр.get /members/new
- отображение формы на добавление участника кружка.post /members/new
- обработка результатов формы на добавление участника кружка.get /members/:id
- отображение информации об участнике группы с уникальным номеромid
.get /members/:id/edit
- отображение формы на редактировании информации об участнике.post /members/:id
- обработка результата заполнения формы на редактирование информации об участнике.
- Маршруты с информацией о фильмах.
get /movies
- отображение списка фильмов. Должен поддерживаться постраничный просмотр.get /movies/new
- отображение формы на добавление фильма.post /movies/new
- обработка результатов добавления формы. После успешного добавления должна происходить переадресация на созданную страницу фильма.get /movies/:id
- отображение информации о фильме с уникальным номеромid
.get /movies/:id/edit
- отображение формы на редактирование фильма.post /movies/:id
- обработка результата заполнения формы на редактирование фильма.