Sharing Models between two Rails Projects - using

2019-05-09 23:38发布

I have a Rails website which has been divided into two separate projects - the public site, and the administration site.

As both sites are using the same database the models are shared between the applications (actually right now they are duplicated). The problem I have here is that when an update to the models occurs in the public project I need to copy the changes over into the admin project.

I've had a look around SO and noticed that there was a question which had answers suggesting using svn:external or git submodule, but I'm not entirely sure how to do this.

Essentially my aim is to be able to make the changes in one place only, commit those changes to git and then be able to pull the changes in the other project when I need to update that as well.

2条回答
叼着烟拽天下
2楼-- · 2019-05-09 23:59

You need to:

  • commit the submodule in one place
  • commit the main project (said the public site)
  • go to the same submodule in the other main project (the admin site)
  • pulling the latest content (changing the HEAD of that submodule)
  • going one directory up in the main (admin) project
  • commit (to record that you now reference a different version of the submodule)

See also true nature of submodules.

查看更多
三岁会撩人
3楼-- · 2019-05-10 00:10

Do not use submodules. They are ugly, hard to understand and to maintain. Much better is to use subtrees.

Git subtree is a part of GIT since 1.7.11 and I wrote an article about sharing code between Rails applications: http://igor-alexandrov.github.com/blog/2013/03/28/using-git-subtree-to-share-code-between-rails-applications/

In short: yes git-subtree works and works great!

查看更多
登录 后发表回答