Я новичок в rails и работаю над внутренним приложением для управления контентом.Я сделал прототип, но чувствую, что он грязный и есть лучший способ.Мне требуется следующее:
В моем текущем прототипе используется рабочий процесс (http://github.com/geekq/workflow) плагин для управления состоянием как проекта, так и тем. Я также посмотрел на activ_as_tree и acts_as_list, но не уверен, как лучшеструктурировать вещи.
========
Проект (имеет заголовок, описание, крайний срок, workflow_state) [состояния: неопубликовано (например, черновик), опубликовано (темы можно проверитьвход и выход и т. д.), в архиве (состояние завершено)]
Модуль (является дочерним элементом проекта [действует как группа]; может быть много; имеет заголовок, описание, содержимое)
Раздел (является потомком модуля [действует как группа]; может быть много; необязательно; имеет заголовок, описание, содержимое)
Тема (является потомком раздела; может быть много; может быть упорядочен; имеет заголовок, описание, содержимое, workflow_state, owner_id, order) [состояния: новые, check_out, pending_review, review_required, завершено]
Процесс (является дочерним по отношению к теме; может быть много; необязательно; имеет заголовок, описание, содержимое)
Ресурсce (является потомком процесса;может быть много;необязательный;файл;имеет заголовок, resource_link)
-
(Есть также еще 2 объекта, которые связаны с проектом; введение и основные принципы. Для каждого проекта будет только один объект)
Введение (является дочерним элементом проекта; только один; имеет: title, description, content, workflow_state) [указывает: то же самое по теме]
Основы (является дочерним по отношению к проекту; только один; имеет:title, description, content, workflow_state) [сообщает: это же тема]
NB.Мне известно, что некоторые из этих слов зарезервированы и должны быть псевдонимами.
========
Я надеюсь использовать структуру URL, аналогичную следующей:
/ projects /: project_id / modules /: module_id / themes /: section_id / themes /: topic_id / projects /: process_id / resources /: resource_id
или (если раздел пропущен)
/ projects /: project_id / modules /: module_id / themes /: topic_id / projects /: process_id / resources /: resource_id
======= *
Любойответы приветствуются.
ОБНОВЛЕНИЕ: Rails 2.3.8