作为一个学习项目,我正在开发一个针对我所在的功夫俱乐部的Rails 3.1论坛应用程序。我想在Github上管理我的代码,这样俱乐部或其他人可以使用它。我们的想法是在Github上放置一个'简单',可定制的版本,但在另一个更私人的git存储库中管理自定义,例如不同的样式或不同的登录方案。如何构建可定制的Rails应用程序?
使Rails应用程序可定制的最佳方式是什么?这些自定义可能包括:CSS代码,Javascript代码,HTML视图,种子数据(例如我俱乐部中的用户组),完整的附加视图或覆盖单个视图方法。理想情况下,自定义生活在一个单独的目录中,因此它们也可以分别放在git存储库中。
下面是来到我的脑海一些方法:
- 两个储存库,一个是另一个的与自定义克隆(缺点:为督促服务器,容易出错,因为一个简单的更新许多使用Git操作相同的代码存在两次)
- 为CSS,JS等提供单独的解决方案:将目录中的所有修改放在
custom
(使用第二个私人回购管理,可以作为git子模块进行管理),其内容通过*= require_tree my_sports_club/stylesheets
等等,但是路线,视图和控制器呢? - Rails的路我还不知道 - 也许是这样的:开发我的应用程序作为宝石,然后将这个宝石安装到现有的应用程序,然后覆盖我的宝石的某些部分?我看了一下spree是怎么做到的,但这对我来说看起来相当复杂,而且对于正在进行的开发来说似乎也不太方便。
我很感兴趣,其他人如何解决这个问题以及它的局限性。可能我应该将其描述为一个混合的Rails/Git问题 - 我试图在git存储库中保留一个现成的应用程序(即一个没有标识的普通灰色背景的论坛) ,并且我想保留定制版本所需的所有数据和代码,这是现成版本的“实例”,针对另一个存储库中部署域的需求量身定制(体育俱乐部论坛,定义的用户组,标识等)。而且我希望能够轻松地在这两者之间切换,因此我只能在生产站点上部署实例网站后才能看到实例网站。
Rails已经*可*定制。如果你想要一个CMS,你可以通过基于网络的GUI进行更改,请使用WordPress。这不是Rails的。 – meagar
@meagar:我不是在谈论用于定制的用户界面。你有没有读过我的问题? – fqxp
从谁的角度定制?你想要一组固定的宝石,还是可以开放定制? – prusswan