10

我正在开始研究为 Rails 应用程序构建用户级插件系统(如 Wordpress 插件)所需的内容,因此我将不胜感激一些一般性的指针/建议。用户级插件是指用户可以提取到文件夹中并显示在管理界面上的包,允许他们添加一些额外的配置然后激活它。

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

插件必须能够:

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

还有什么我想念的吗?

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

PS:我会尽量保持更新,编译我想出的东西和相关的答案,以便为其他人提供一种指南。

4

2 回答 2

3

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

于 2010-04-03T19:17:55.463 回答
3

你应该看看deface gem。它允许自定义 Rails 视图,通过钩子添加内容并替换整个视图/部分。Spree 正在使用此 gem,因此您也可以查看spree。除了视图之外,他们还有其他用于自定义应用程序的解决方案,因此您可以找到更多问题的答案。

于 2015-05-08T20:40:58.520 回答