10

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

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

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

我将如何最好地做到这一点?是否有关于如何在主应用程序旁边的单独 Rails 应用程序中构建管理应用程序的良好指南,而不是将其集成?

作为旁注:将管理员保留在与主应用程序不同的应用程序中但在共享数据库上的另一个很好的理由是无数的依赖关系,像 ActiveAdmin 这样的 gem。

另请注意,我不仅对在不同域或不同服务器上运行 admin 感兴趣,而且主要是为了保持主应用程序的精简和专注。并将 ActiveAdmin 之类的依赖项保留在我的主应用程序之外。


脚注:

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

更实用:我没有Devise(它是 JSON-API,所以经过令牌认证),没有任何视图或模板引擎。没有 Formtastic、没有回形针、Rmagic、Kminari(寻呼机)等等。当我拉入“只是一个管理员”时,所有这些都将添加到我的应用程序中。

4

2 回答 2

1

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

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

于 2013-08-29T06:55:19.120 回答
1

您是否衡量了添加 ActiveAdmin 等工具对您的 REST API 速度的影响?如果不是,这对我来说听起来像是过早优化的情况。

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

于 2013-08-08T21:27:48.457 回答