В настоящее время я работаю над приложением Rails, которое позволяет пользователям добавлять «виджеты» на домашнюю страницу приложения при входе в систему. Эти виджеты будут состоять из каналов Twitter, каналов Flickr, других каналов RSS и т. Д. также будет административной областью, где администраторы могут добавлять / управлять виджетами, доступными для добавления пользователями. Кроме того, каждому приложению необходим свой собственный набор параметров, которые пользователь должен будет ввести при добавлении этого виджета (например, для твиттера требуется имя пользователя твиттера).
В течение нескольких дней я пытался понять, как должна работать логика, стоящая за этим. Сначала я думал о динамическом построении виджета на лету и сохранении всей информации о конфигурации виджетов / виджетов в таблицах базы данных, например:
Widgets
- name
- description
- feed_url
Widgets Settings
- widget_id
- name
- field type (text, textarea, etc...)
- required
User Widgets
- user_id
- widget_id
User Widget Settings
- user_id
- widget_id
- widget_setting_id
- value
Таким образом, в основном администраторы добавляли виджеты в таблицу модулей (например, Twitter), а затем добавляли поля конфигурации для этого модуля в таблицу настроек виджета (twitter_username). Но как связать параметры конфигурации с виджетом при их создании - вот где у меня проблемы.
Другим вариантом было бы жестко закодировать все и вставить его в каталог lib /. Но это убило бы всю гибкость / динамическую функциональность.
Похоже ли это на то, что оно работает?
Любой совет будет очень признателен!