在两个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工作并且效果很好!