2014-02-08 44 views
-1

我想创建一个具有基本结构的应用程序:一堆控制器,模型,视图,语言环境,配置等。应用程序存在于特定路径中我的服务器(称为:PATH1)。使用可插拔模块,配置和视图构建可扩展的模块化Rails应用程序

我希望其他同事能够在不修改原始文件的情况下扩展/覆盖这些文件。他们可能想要自定义视图或向现有模型添加字段,或者甚至向现有控制器添加方法。 他们应该工作,并把他们的文件放在一个专用目录到同一个服务器(称为:PATH2)

重点是他们不能访问原始代码库,但只能扩展它。

最终的应用程序像往常一样运行,通过加载PATH1和PATH2中的所有文件。 我已阅读关于Rails引擎,我想知道如果我能与他们取得这一成果。

任何人都有这种基础设施的经验?

非常感谢;)

+0

我只能通过建议使用API​​的贡献,但其他的,我会需要看看如何做到这一点!请问为什么你要这样构造它? –

+0

有很多员工(前端开发人员,设计师等)无法读取/复制他们使用的应用程序的底层框架。他们的目标是创建具有不同特性的多个Rails应用程序(运行于不同的客户端)(他们创建自定义视图,添加字段等)。 RefineryCMS类似的情况,您可以在其中创建自定义扩展。 –

+0

你为什么不做宝石? –

回答

0

我阅读或观看railscasts这个情节: http://railscasts.com/episodes/277-mountable-engines

这是一个免费的小插曲,并应指向你到正确的方向。如果这不是你想要/需要的,你将不得不创建一个数据库驱动的方法,人们可以添加一个路径名,然后通过基于Web的编辑器添加他们的代码,该编辑器存储在数据库中并在加载时执行。如果您或其他开发人员不确切知道他们在做什么,我会向您保证采用这种方法解决安全问题。

另一种选择是使用像炼油厂这是一个可扩展的CMS系统,人们可以造成比损伤小:)