Ruby on rails Sinatra和Rails之间共享模型代码

Ruby on rails Sinatra和Rails之间共享模型代码,ruby-on-rails,sinatra,sharing,Ruby On Rails,Sinatra,Sharing,我有一个响应api调用的Sinatra应用程序,还有一个Rails应用程序,它处理报告和所有漂亮的东西,比如图形和网站。两者都需要访问一组通用模型(例如帐户、站点等) 我的问题是:如何在两个应用程序之间高效地共享代码?例如,如果我在Sinatra中编辑Accounts模型,我不想记住在Rails应用程序中复制相同的更改。我不希望使用Rails机架安装,因为这两个应用程序将位于不同的集群上 我已经看到了关于StackOverflow的建议: Git模块 符号链接(不适用于我同事使用的Window

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

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

我已经看到了关于StackOverflow的建议:

  • Git模块
  • 符号链接(不适用于我同事使用的Windows)
  • Rails插件(我怀疑这是否适用于Sinatra)
  • RubyGems(我认为这对于模型数据来说太过分了,但这就是我)
这两个应用程序位于不同的存储库中。基本上,我首先开发API,然后在Rails应用程序中加入特定于帐户的逻辑(主要是因为Rails有更多的库,使开发这类东西更容易)


您将如何解决这个问题?

我会选择一个gem,或者更确切地说是类似gem的东西,您不需要发布它,然后使用Bundler。我们在Travis CI上做得很好,尤其是Bundler 1.2中新的“本地”git依赖项:

应用程序是在同一个存储库中还是在不同的存储库中?它们在不同的存储库中:)你会建议它们在同一个存储库中吗?不,我只是想知道选项会随着时间的推移而有所变化。我个人认为git模块或私有gem都是最好的选择。澄清一下,这意味着我必须将两个应用程序之间的共性提取到gem中,对吗?如果是这样的话,您是否知道我可以检查并从中学习使用此技术的存储库?:)是的,我就是这个意思。另一种方法是在同一项目中使用Sinatra应用程序和Rails应用程序,或者使用Sinatra应用程序加载Rails应用程序。请查看一个示例。