8

我有一个响应 api 调用的 Sinatra 应用程序,以及一个处理报告和所有漂亮的东西(如图形和网站)的 Rails 应用程序。两者都需要访问一组通用模型(例如帐户、站点等)

我的问题是:如何有效地在两个应用程序之间共享代码?例如,如果我在 Sinatra 中编辑 Accounts 模型,我不想记住在 Rails 应用程序中复制相同的更改。我宁愿不使用 Rails 机架安装,因为这两个应用程序将位于不同的集群上。

我在 StackOverflow 上看到过关于以下方面的建议:

  • Git 模块
  • 符号链接(不适用于我同事使用的 Windows)
  • Rails 插件(我怀疑这是否适用于 Sinatra)
  • Ruby Gems(我认为这对于模型数据来说太过分了,但这只是我)

这两个应用程序位于不同的存储库中。基本上,我首先开发 API,然后在 Rails 应用程序中添加特定于 Account 的逻辑(主要是因为 Rails 有更多的库可以更容易地开发这些东西)。

你将如何解决这个问题?

4

1 回答 1

4

我会选择 gem,或者更确切地说是 gem,你不需要发布它,然后使用 Bundler git dependencies。我们在 Travis CI 中大量执行此操作,并且效果很好,尤其是 Bundler 1.2 中新的“本地”git 依赖项:http: //gembundler.com/man/bundle-config.1.html#LOCAL-GIT-REPOS

于 2012-09-25T00:24:08.677 回答