違いがよくわからなかったのでとりあえず ActiveAdmin を入れてみたら、いきなり CSS が全域に影響を及ぼしたのでびっくり。するとこれは、Webアプリに管理画面を追加するものではなくて、管理画面Webアプリそのものを作るための gem なのかな、と思ったのだけどその割にパスは /admin 以下になったりするし、 gem として軸がぶれていると感じたのでそれ以上試さずに消してしまいました。
そのあと RailsAdmin 入れてみたら admin 以下が Engine になっていて本体に影響しないし、特に問題なく便利に使えています。みんな RailsAdmin 使えばいいと思いました。
ところで RailsAdmin は CanCan 2.0 に対応していない。これについては別途エントリを立てて纏めたい (いやむしろ RailsAdmin に pullreq 出したい) ところだが、ひとまずヒントだけ出しておきます。
config/initializers/rails_admin.rb
module RailsAdmin
module Extensions
module CanCan
class AuthorizationAdapter
def authorize(action, abstract_model = nil, model_object = nil)
@controller.current_ability.authorize!(action, model_object || abstract_model && model_name(abstract_model.model)) if action
end
def authorized?(action, abstract_model = nil, model_object = nil)
@controller.current_ability.can?(action, model_object || abstract_model && model_name(abstract_model.model)) if action
end
private
def model_name(model)
model.to_s.underscore.pluralize.to_sym
end
end
end
end
end
app/models/ability.rb
alias_subject 'rails_admin/main', to: :rails_admin
can :access, :rails_admin
can :dashboard, :all
see also: http://qiita.com/kuboon/items/1d009e2f89729fe5db78