私はJSONのみのアプリケーションを構築しています。これは基本的に、より少ないミドルウェアとより少ないモジュールを備えたよりスリムなRailsです。これは Rails 4 でビルドされているアプリケーションです。
メインアプリのデータベース内のデータを管理できるシンプルなアプリを開発したいと考えています。このために、 Active AdminまたはRails Adminを使用したいと思います。ただし、どちらのオプションも、基礎となるモデルとその検証、要件などを何らかの形で使用して、その上に構築します。
これは、少なくともメイン アプリケーションと RailsAdmin アプリケーションの間でモデルを共有する必要があることを意味します。
どうすればこれを行うのが最善でしょうか? 管理アプリケーションを統合するのではなく、メイン アプリケーションの隣に別の Rails アプリケーションで構築する方法についての良いガイドはありますか?
補足として、管理者をメイン アプリとは別のアプリケーションに保持し、共有データベースに保持するもう 1 つの理由は、ActiveAdmin のような gem が付属している無数の依存関係です。
また、別のドメインまたは別のサーバーで管理者を実行することに単に関心があるのではなく、主にメイン アプリを無駄なく集中させることに関心があることにも注意してください。そして、ActiveAdmin のようなものが付属する依存関係を維持するために、私のメイン アプリから除外します。
脚注:
- ActiveAdmin も RailsAdmin も、それ自体はパフォーマンスの問題ではありません。JSON のみの Rail-app が必要とするモジュール、ヘルパー、およびミドルウェアは非常に少ないのに対し、それらにはミドルウェアが必要です。Rails-API は、このようなスリムなスタックを提供します。パフォーマンスは、管理者と管理者なしの関係ではなく、フルレールとレール API の関係です。
- パフォーマンスは私の主な問題ではありません。依存関係と肥大化です。私は今、ほとんどの Sinatra アプリでそれ自体を測定できるほどスリムで、集中的で、無駄のない Rails アプリケーションを持っています :)。3 つの追加の gem (それぞれにいくつかの依存関係があります) と、非常に薄いミドルウェアのスタックだけで、アップグレード、管理、およびデバッグを非常に簡単に行うことができます。
より実用的: 私は Devise を持っていません(これは JSON-API であるため、トークン認証されています) 。ビューやテンプレート エンジンもありません。Formtastic、ペーパークリップ、Rmagic、Kminari (ポケットベル) などはありません。「管理者のみ」を取り込むと、これらすべてがアプリに追加されます。