2012-05-01

RailsAdmin試して簡単にTypusと比較してみた

調べた当時見つけることができなかったので普段は Typus を使っているんだけど、Rails 3.2 で動かないっぽいのと、Mongoid と組み合わせて使ってみようと思ったら

Typus はユーザーDBが ActiveRecord を利用する前提になってる

のにガックリきて RailsAdmin を試してみた。

というわけで以下は簡単な比較。

Typus

http://www.typuscmf.com/

  • Model に対応する admin 用の Controller を作る必要がある
  • 加えて Model に対する編集権限や読み書きできる field を YAML で定義する必要がある

YAML を作るということさえ分かればカスタマイズは楽にできるし、生の Controller ができるのでこれをいじれば動きを変えられるということが簡単に想像できる。

手間は多いけどどうすればカスタマイズできるかが分かりやすいのがメリット。

画像などのファイルについては

  • PaperClip や Dragonfly を使った画像の preview からさらに lightbox 系の機能まで組み込み済み

デメリット

  • Rails 3.2 はたぶん未対応
  • 認証用のユーザー DB が ActiveRecord 前提なのでフル Mongoid にできない
  • Typus 用に Model に手を加える必要がある場合がある。これがパフォーマンスに影響しそうでちょっとイヤな感じ。

RailsAdmin

https://github.com/sferik/rails_admin

  • Rails 3.1+ 以降対応 ( sass などが前提 )
  • デザインがイマドキ
  • 設定用 YAML や admin 用 Controller を作らなくてもいきなり管理できる
  • Mongoid フル対応
  • 認証は基本 devise 依存だが最初のセットアップが親切なので Mongoid や devise が分かってなくても準備できる
  • カスタマイズは initilizers/rails_admin.rb の中で config.model ModelName do end のような形で記述する。

例えば画像の preview サイズの設定は

config.model ModelName do
  field :FIELD do
    thumb_method '200x200'
  end
end

みたいに書く。

最初の準備は RailsAdmin の方が楽かも。少なくともたくさんファイル作らなきゃいけない1という面倒くささはない。

  • 管理画面から触れてほしくない Model なんかも config.excluded_models で設定できる。ユーザー別にどうするかまでは調べてない。
  • カスタムコントローラとかたぶん作れるけどよく分かってない

カスタマイズのノウハウ次第のところはあるけど、

  • Rails 3.2 対応
  • 見た目のかっこよさ
  • Controller や YAML を用意しまくらなくてもとりあえず動く

これはとても良いと思う。

  • image の popup preview ( Lightbox 的なアレ ) はないみたい

だけど、管理画面だし、オリジナルの画像を確認できるだけで十分ちゃ十分かも。

残念なところ

  • JS の効果の仕上げが粗い。popup が残りっぱなしになったりする
  • バージョン 0.0.1 は不安になる。安定して使えるならそれなりのバージョンにしてほしい。

認証の外し方

Typus の場合は initializer で

Typus.setup do |config|
  # Define authentication: +:none+, +:http_basic+, +:session+
  config.authentication = :none
end

すればいいというのが設定ファイルを見ればコメントですぐ分かるんだけど、RailsAdmin の場合はよく分からなかったので設定ファイルの中を読んでいたら Proc.new {} という記述をそこかしこで見かけたので試しに

RailsAdmin.config do |config|
  # ignore authentication
  config.authenticate_with do; end
end

こんな感じに authenticate_with の中身を空にしたら認証がスルーされた。というわけでこれを

config/environments/development.rb

に書けば開発環境でだけ認証が外れる。

  1. 実際には generator が作っているとしても、正しく配置しておかなきゃいけないことには違いがない 

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm