1

我为一个学校校友网站开发了一个 Rails 应用程序。现在另一所学校要我为他们开发一个类似的网站。

我想重用该应用程序。数据结构相同,但实际数据不同。设计布局将相似,但设计本身会有所不同。

一种选择是我只是复制应用程序并对其进行修改。但在这种情况下,我需要在 2 个应用程序发展时对其进行管理。

另一种选择是使应用程序通用化和可定制(尽管数据库将分开)。视图会有很多很多的分支。

我可以在数据库上使用多个应用程序,但我相信这需要很多工作。

另一种选择是将控制器和模型移动到插件中,以便 2 个应用程序共享它们。

你有过这样的案例吗?如果有,可以分享给我吗?

谢谢。

山姆

4

5 回答 5

2

这可能有点不正统,但如果你使用 git,你可以创建两个分支

  1. 一个用于学校校友网站
  2. 一个用于类似站点

根代码将保留在 master 分支中。您的开发流程将是:

  • 从主分支
  • 进行编辑
  • 满意时将编辑拉入母版
  • 将主更改拉入分支。

您可以根据需要继续在本地修改分支,但您需要小心在主/分支之间引入冲突编辑。

于 2009-08-25T19:24:08.037 回答
1

如果有任何方法可以避免将代码分叉成两个单独的应用程序的复杂性,那么您应该这样做。

按照您的建议,使应用程序通用化和可定制,将您的一次性咨询项目转变为更接近独立产品的东西(这可能更有利可图)。

于 2009-08-25T17:54:12.680 回答
0

您会惊讶于使用不同的样式表、布局和明智地使用本地化可以达到多远。

于 2009-08-25T17:51:19.580 回答
0

2 个应用程序将共享:

模型助手控制器

他们不会分享:

意见

我还不确定数据库。

我可以使用皮肤概念分离视图,例如:

应用程序/视图/app1/...

应用程序/视图/app2/...

我还在考虑数据库。

于 2009-08-26T08:35:34.713 回答
0

我正在使用 git 子模块和符号链接。中的共享项目有一个子模块Rails.root/shared。然后是从app/modelsto的符号链接shared/app/models,依此类推。

于 2009-08-26T08:43:21.843 回答