私たちはまもなく、非常に不健全なコード基盤を持つ 5 年前の Rails アプリを、まったく新しい機能を備えた真新しい Rails 3 アプリでゼロから書き直す予定です。現在のアプリには、現在の管理フレームワークにまったく依存する実質的なカスタム管理 UI バックエンドがあります。いくつかの基本コントローラー クラスと、いくつかの便利な CSS 規則だけです。しかし、その UI を維持するのは大変な作業です。
だから私は、シンプルなものを些細なものにするが、フォームと機能の両方でより複雑なカスタマイズの方法を取得しない管理 UI フレームワークを求めています。
最有力候補のActiveAdminは非常に人気があるようで、少し使ってみたところ、いくつか懸念があります。単一の ruby ファイルに存在する一意の DSL 全体を宣言しているようです。これはちょっといい感じですが、他のほとんどの Rails アプリの設計方法とはまったく異なります。ビュー、ヘルパー、コントローラーを抽象化し、純粋な Ruby DSL を提供します。これは、私たちの管理者ビューでトリッキーなこと、より高度なカスタムを行う際の邪魔になるように私には思えます。DSL が明示的にサポートしていない何かを実行したい場合を除き、DSL は素晴らしいものです。
私の実験からの例「リソース」。コントローラーもビューもありません。
ActiveAdmin.register Region do
menu parent: "Wines"
show title: :name
index do
column(:zone) { |o| link_to o.zone, admin_region_path(o) }
column(:name) { |o| link_to o.name, admin_region_path(o) }
default_actions
end
end
だから、質問:
- 標準的な Rails MVC アーキテクチャに基づいていないのは別のファイルにあり、典型的なコントローラの継承ベースの管理領域の実装は、実際に私が心配する必要があることですか? 長期的には拡張性が損なわれますか?
- ActiveAdmin の DSL は、私が信用しているよりも優れていて柔軟性がありますか?
- 高度なカスタマイズの目標により適した他のフレームワークを検討する必要がありますか?
- 怠け者になるのをやめて、自分でロールする必要がありますか?
Mongoid
データベースとしてではなく、という選択はMySQL
、上記の質問のいずれかに影響しますか?