Ruby on rails 如何在RubyonRails中实现插件架构?

Ruby on rails 如何在RubyonRails中实现插件架构?,ruby-on-rails,architecture,social-networking,plugin-architecture,plug-and-play,Ruby On Rails,Architecture,Social Networking,Plugin Architecture,Plug And Play,我必须在RubyonRails上建立一个社交网站。现场的特征可能会不时发生变化;因此,我们需要轻松地添加/删除功能。此外,我们可能正在建设另一个社交网站。由于这些原因,我们正在考虑为RoR中的社交网站构建一个基本框架,该框架具有安装或卸载框架扩展的功能 我以前在Joomla工作过!CMS及其用于添加/删除扩展的体系结构正是我所关注的。在乔姆拉!安装通常有一个管理员端,您可以从中添加/删除/自定义扩展 我是RoR的新手,发现决定如何做有点困难。任何帮助都将不胜感激。2015年更新:这一问题在200

我必须在RubyonRails上建立一个社交网站。现场的特征可能会不时发生变化;因此,我们需要轻松地添加/删除功能。此外,我们可能正在建设另一个社交网站。由于这些原因,我们正在考虑为RoR中的社交网站构建一个基本框架,该框架具有安装或卸载框架扩展的功能

我以前在Joomla工作过!CMS及其用于添加/删除扩展的体系结构正是我所关注的。在乔姆拉!安装通常有一个管理员端,您可以从中添加/删除/自定义扩展


我是RoR的新手,发现决定如何做有点困难。任何帮助都将不胜感激。

2015年更新:这一问题在2009年得到了回答,但发生了很大变化

插件已经被Gems和引擎所取代 有关发动机所需的所有信息:

引擎是为rails应用程序构建封装和可重用代码的绝佳方式

原始答案供参考

在开发方面,Rails引擎和/或插件可能是您想要的

例如,假设您的社交网络应用程序有一个wiki、博客、聊天室等。您很可能希望创建一个wiki引擎、博客引擎和聊天室引擎

引擎允许您在不同的应用程序中重复使用这些功能,因此您不必重复自己的操作

看看:

我还建议大家看看github上的一些公共项目,看看人们是如何使用引擎的

看看一些发动机:

其他有用的阅读链接

就功能而言,您仍然可以拥有一个管理区域,通过允许用户使用权限/角色系统访问这些区域来激活某些功能,例如您的博客或wiki

如果你想构建一个支持Wordpress或Joomla等扩展的CMS,那么你要么构建它并提供指南,要么至少从用户的角度研究如何上传/安装引擎/插件

不确定这对安全的影响

已经将这种功能应用到他们令人敬畏的应用程序中。你可能想在地图上到处寻找提示和线索

最后,基本上采用了这种方法,并为其CMS应用程序创建了


HTH

引擎仍然是一条非常坚实的道路,获取引擎信息的新位置位于此处:

但您需要的是更具体的应用程序。随着时间的推移,许多应用程序会有机地开发这些东西。他们首先手工制作其中一些,然后定期重新考虑,直到找到与软件设计模式一致的模式,然后开发插件框架

您是否要向最终用户公开您的界面?给第三方开发者?应用程序的哪些部分由这些插件控制?它只是表示层吗?它会影响数据模型吗?考虑一下当你发布任何一种外部接口时,你正在开发你需要遵守的合同。


您可以查看以下设计模式:。它们将帮助您了解如何管理您的开发过程。如果你只是在开发内部使用的插件,那么它们的真正用途是什么?是什么使它们与模块不同?

Rails的级别比Joomla低一点。。。您可能需要自己构建一些基础设施,或者使用现有的Rails应用程序。@Toby-可能正在更新您的评论。我同意你的看法,Rails绝对是@Shree级别较低的-请看一些可以做的示例,特别注意Redmine和ADVA CMS