Active Admin 内の AdminUsers 内のロールを利用しており、CanCan を使用してさまざまなリソース間のアクセスを定義しています。
アクセスの制限に関してはうまく機能していますが、役割に基づいてメニューを非表示にするのに問題があります。
ActiveAdmin のドキュメントによると、次のように動作するはずです。
menu :if => proc{ can?(:manage, AdminUser) }
私のability.rbモデルファイルには、
case user.role
when "admin"
can :manage, :all
cannot :manage, Company
when "manager"
can :manage, Program
can :manage, Client
明示的に述べるために、can't :manage, AdminUser under manager も追加しました。
「マネージャー」ロールとしてログインしているときに AdminUser メニューを非表示にしようとしています。現在、まだそのユーザーに表示されていますが、クリックすると、認証されていないことが正しく通知されます。