Я боролся с правильным способом разработки модели / контроллера Rails для панели мониторинга / портала, который может поддерживать простую / понятную разработку виджетов. Я уже (в качестве отвлечения) написал базовое представление jQuery / jQuery-UI / CSS, в котором проработан HTML-код столбца / порядка и элементы управления для изменения порядка / минимизации / удаления виджетов, и теперь я возвращаюсь к тому, как лучше разработать модель и контроллер.
Как центральное место для поиска всей информации о виджетах, у меня есть модель виджетов. (пока что не ActiveRecord) В идеале я хотел бы, чтобы представление индекса виджетов просто получало виджеты из контроллера, а модель содержала бы атрибуты виджета, необходимые для визуализации представления. Это будет включать атрибуты виджета «частичный» и «контроллер», которые представление может использовать для отображения частичного представления определенного виджета в моем представлении панели мониторинга.
Я не хочу перегружать мой контроллер виджетов кучей потенциальных данных, специфичных для виджетов, которые может использовать их частичное представление. Вместо этого я хочу получить частичную визуализацию, просто указав частичку виджета и контроллер для использования. Тогда частичное представление и контроллер могут делать все, что им нужно для этого виджета.
Widget Controller Index --> render @widgets --> widget1 widdget1_controller/partial view1
\ \-> widget2 widdget2_controller/partial view2
\--> widget3 widdget3_controller/partial view3
Модель панели мониторинга будет содержать столбец, порядок, частичное представление, контроллер.
Частичные виды и контроллеры, специфичные для виджета, будут располагаться в подпапках папок контроллеров и видов / виджетов, чтобы обеспечить чистоту.
Надеюсь, это поможет при попытке добавить поддержку AJAX. Каждый контроллер виджета может обрабатывать свои собственные действия контроллера (например, редактирование виджета или сохранение чего-либо), и я могу заставить клиентский браузер выполнять вызовы AJAX для частичного для получения обновленной информации без необходимости вызова исходного контроллера виджета и т. Д. *
Что вы, ребята, думаете? У вас есть лучшее предложение?