我正在开发一个有两个不同 Rails 应用程序的项目。一个是 Web 应用程序,另一个是 API 应用程序。他们都使用相同的数据库。他们如何或什么是使用相同模型和模式的正确方法?目前,模型文件似乎从一个应用程序复制到另一个应用程序,并且在检查差异时它们似乎严重不同步。
问问题
70 次
1 回答
3
我想到了几个选项:
Git 子模块。将模型存储在单独的存储库(或存储库)中,然后将其作为Git 子模块包含在每个应用程序中。这允许您在没有冗余的情况下重复使用它们,但您可能必须确保保持每个应用程序正在使用的修订版本同步。
让它成为一个应用程序,具有两个不同的部分。也许您的 API 可以是一个简单的 Sinatra(或其他微框架)应用程序,并驻留在 Rails 应用程序中,然后安装到路径/子域。这可能是最少的工作量和最简单的,但它也可能是最混乱的。
使用您自己的 API。你已经有一个 API,为什么不使用它呢?您的前端应用程序可以与之对话,而不必在其中包含任何模型逻辑。这还有一个很好的副作用,即确保您的 API 正常工作并且功能齐全,因为您现在是它的消费者,而不仅仅是第三方。
你选择哪一个取决于你,虽然我碰巧更喜欢最后一个。虽然这可能需要更多的工作,但通过使您的业务逻辑外部化(并使 MVC 违规更难,如果不是不可能的话),您最终可能会得到一个整体更好的设计。
于 2013-02-11T02:25:07.310 回答