我正在开始研究为 Rails 应用程序构建用户级插件系统(如 Wordpress 插件)所需的内容,因此我将不胜感激一些一般性的指针/建议。用户级插件是指用户可以提取到文件夹中并显示在管理界面上的包,允许他们添加一些额外的配置然后激活它。
这样做的最佳方法是什么?有没有其他开源项目已经这样做了?Rails 本身已经为可以利用的程序员级插件提供了什么?任何可以帮助我解决此问题的 Rails 插件?
插件必须能够:
- 运行自己的迁移(有 这个?它没有记录)
- 可以访问我的模型(插件已经可以)
- 具有向视图添加内容的入口点(可以使用content_for 和 yield完成)
- 替换整个视图或部分视图(如何?)
- 提供自己的管理员和面向用户的视图(如何?)
- 创建自己的路线(或者可能只是宣布它的存在并让我为它创建路线,以避免插件踩到彼此的脚趾)
还有什么我想念的吗?
此外,有没有办法限制插件可以访问的有关迁移和模型的表/操作,并限制它们对路由的访问(可能让它们包括但不删除路由)?
PS:我会尽量保持更新,编译我想出的东西和相关的答案,以便为其他人提供一种指南。