我有一个响应api调用的Sinatra应用程序,以及一个处理报告和所有漂亮的东西(如图形和网站)的Rails应用程序.两者都需要访问一组通用模型(例如,帐户,网站等)
我的问题是:如何在两个应用程序之间有效地共享代码?例如,如果我在Sinatra中编辑Accounts模型,我不想记得在Rails应用程序中复制相同的更改.我宁愿不使用Rails Rack安装,因为两个应用程序将在不同的集群上.
我在StackOverflow上看到过关于以下内容的建议:
> Git模块
>符号链接(不适用于我的同事使用的Windows)
> Rails插件(我怀疑这适用于Sinatra)
> Ruby Gems(我觉得这对于模型数据来说太过分了,但那只是我)
这两个应用程序位于不同的存储库中.基本上,我首先开发API,然后在Rails应用程序中加入特定于帐户的逻辑(主要是因为Rails有更多的库,可以更容易地开发这些东西).
你怎么解决这个问题?
解决方法
我会选择一个gem,或者更确切地说是gem,你不需要发布它,然后使用Bundler
@L_404_1@.我们在Travis CI上做了很多,并且效果很好,特别是对于新的“本地”git依赖项在Bundler 1.2:
http://gembundler.com/man/bundle-config.1.html#LOCAL-GIT-REPOS