我目前正在开发一个Rails应用程序,允许用户在登录时将“小部件”添加到应用程序的主页。这些小部件将包含Twitter提要,flickr提要,其他RSS提要等...也将是一个管理区域,管理员可以在其中添加/管理可供用户添加的小部件。此外,每个应用程序都需要它自己的自定义选项集,用户在添加该小部件时将需要输入该选项(例如,对于twitter,需要推特用户名)。
几天来,我一直试图弄清楚这背后的逻辑是如何运作的。起初我的想法是动态地动态构建窗口小部件并将所有窗口小部件/窗口小部件配置信息存储在数据库表中,如:
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
因此,基本上管理员会将小部件添加到Module表(例如Twitter)然后在Widget Settings表(twitter_username)中添加该模块的配置字段。但是在构造它们时如何将配置选项与窗口小部件相关联是我遇到问题的地方。
另一种选择是硬编码所有内容并将其粘贴在lib /目录中。但这会破坏所有灵活性/动态功能。
这听起来有什么用吗?
非常感谢任何建议!