在两个Rails项目之间共享模型 - 使用git子模块?

时间:2010-04-27 03:03:46

标签: ruby-on-rails git models git-submodules

我有一个Rails网站,该网站分为两个独立的项目 - 公共网站和管理网站。

由于两个站点都使用相同的数据库,因此应用程序之间共享模型(实际上现在它们是重复的)。我在这里遇到的问题是,当公共项目中发生模型更新时,我需要将更改复制到管理项目中。

我已经看了一下SO并注意到有一个question有答案建议使用svn:external或git子模块,但我不完全确定如何做到这一点。

基本上我的目标是只能在一个地方进行更改,将这些更改提交到 git ,然后当我需要更新时,能够在其他项目中提取更改好。

2 个答案:

答案 0 :(得分:1)

你需要:

  • 将子模块提交到一个地方
  • 提交主项目(公共网站说)
  • 转到另一个主项目(管理站点)中的相同子模块
  • 提取最新内容(更改该子模块的HEAD)
  • 在主(管理)项目中向上一个目录
  • 提交(记录您现在引用不同版本的子模块)

另请参阅 true nature of submodules

答案 1 :(得分:1)

不要使用子模块。它们丑陋,难以理解和维护。更好的是使用子树。

自1.7.11以来,Git子树是GIT的一部分,我写了一篇关于在Rails应用程序之间共享代码的文章:http://igor-alexandrov.github.com/blog/2013/03/28/using-git-subtree-to-share-code-between-rails-applications/

简而言之:是的git-subtree非常有用并且效果很好!