如何使用ActiveAdmin或RailsAdmin保持DRY,与主应用程序分离



我正在构建一个仅JSON的应用程序,它基本上是一个精简的Rails,具有更少的中间件和更少的模块。这是一个在Rails4中构建的应用程序。

我想开发一个简单的应用程序,可以管理主应用程序数据库中的数据。为此,我想使用Active Admin或Rails Admin。但这两种选择都以某种方式使用了底层模型及其验证、需求等来构建。

这意味着我至少需要在主应用程序和RailsAdmin应用程序之间共享模型。

我该如何最好地做到这一点?有没有一个很好的指南,说明如何在主应用程序旁边的单独rails应用程序中构建管理应用程序,而不是将其集成?

顺便说一句:将管理员保留在与主应用程序分开的应用程序中,但在共享数据库中,另一个很好的理由是有无数的依赖关系,像ActiveAdmin这样的gem也随之而来。

还要注意的是,我不仅仅对在不同的域或不同的服务器上运行管理感兴趣,而且主要是为了保持主应用程序的精简和专注。并保留像ActiveAdmin这样的依赖关系,从我的主应用程序中删除。


脚注:

  • ActiveAdmin和RailsAdmin本身都不是性能问题。这是因为他们需要中间件,而一个只有JSON的Rail应用程序只需要很少的模块、助手和中间件!Rails-API提供了这样一个纤薄的堆栈。性能不是关于管理还是不管理,而是Full-Rails还是Rails-API
  • 性能不是我的主要问题,依赖关系和膨胀才是!我现在有一个Rails应用程序,它非常纤薄、专注和精简,可以用大多数Sinatra应用程序来衡量自己:)。只有三个额外的gem(每个都有自己的一些依赖项)和一个非常薄的中间件堆栈,我可以非常容易地升级、管理和调试

更实用:我没有有Devise(它是一个JSON-API,所以经过令牌认证),

这篇博客文章描述了一种有趣的方法:https://content.pivotal.io/blog/migrating-from-a-single-rails-app-to-a-suite-of-rails-engines

他们使用一个几乎空的应用程序作为容器,并将实际的应用程序安装为Rails引擎。

您是否测量了添加ActiveAdmin等工具对其余API速度的影响?如果没有,对我来说,这听起来像是一个过早优化的例子。

如果API速度确实受到已加载但未使用的库的影响,则可以创建多个应用程序并在git子模块中共享模型。

最新更新