为Rails应用程序构建扩展框架

Hel*_*iro 10 plugins extensibility ruby-on-rails admin

我正在开始研究我需要什么才能为Rails应用程序构建用户级插件系统(如Wordpress插件),所以我很欣赏一些通用指针/建议.用户级插件我指的是一个用户可以解压缩到一个文件夹并将其显示在管理界面上的包,允许他们添加一些额外的配置然后激活它.

这样做的最佳方法是什么?还有其他开源项目吗?Rails本身已经为可以利用的程序员级插件提供了什么?任何可以帮助我的Rails插件?

插件必须能够:

  • 运行自己的迁移(用 这个?它没有记录)
  • 可以访问我的模型(插件已经可以)
  • 有视图添加内容的入口点(可以使用content_for和yield完成)
  • 替换整个视图或部分(如何?)
  • 提供自己的管理员和面向用户的视图(如何?)
  • 创建自己的路线(或者只是宣布它的存在,让为它创建路线,以避免插件踩到彼此的脚趾)

还有什么我想念的吗?

此外,有没有办法限制插件可以访问哪些表/操作有关迁移和模型,还限制他们访问路由(可能让它们包括但不删除路由)?

PS:我会尽量保持这个更新,编译我弄清楚的东西和相关答案,以便为其他人提供一种指导.

小智 3

您可能想查看mephisto,它是一个使用 ruby​​ on Rails 构建的博客软件,并且具有附加插件支持。不确定它是否按照您的想法工作,但可能会给您一些很好的见解。源代码可以在GitHub上找到。