在两个Rails项目之间共享模型 – 使用git子模块?
我有一个Rails网站,它被分为两个独立的项目 – 公共站点和管理站点。
由于两个站点都使用相同的数据库,因此应用程序之间共享模型(实际上现在它们是重复的)。 我在这里遇到的问题是,当公共项目中发生模型更新时,我需要将更改复制到管理项目中。
我已经看了一下SO,并注意到有一个问题有答案暗示使用svn:external或git子模块,但我不完全确定如何做到这一点。
基本上我的目标是只能在一个地方进行更改,将这些更改提交给git ,然后当我需要更新时,能够在其他项目中提取更改。
你需要:
- 将子模块提交到一个地方
- 提交主项目(说公共网站)
- 转到另一个主项目(管理站点)中的相同子模块
- 提取最新内容(更改该子模块的HEAD)
- 在主(管理)项目中进入一个目录
- commit(记录您现在引用不同版本的子模块)
另见子模块的真实性质 。
不要使用子模块。 它们很难看,难以理解和维护。 更好的是使用子树。
自1.7.11以来,Git子树是GIT的一部分,我写了一篇关于在Rails应用程序之间共享代码的文章: http : //igor-alexandrov.github.com/blog/2013/03/28/using-git-subtree-to -share-码间轨道的应用程序/
简而言之:是的git-subtree工作并且效果很好!