2

ユーザーの役割に基づいて、ActiveAdmin のリソースのラベルを条件付きで変更したいと考えています。管理者の名前のデフォルトの複数形を維持したいのですが、通常のユーザーの名前を変更する必要があります。

Usersつまり、通常のユーザー用に変更したいresourceがありMy Accountます (#index が表示されないため)。

私は何かをしようとしています

ActiveAdmin.register User do
  menu :if => proc {if !current_user.admin? 
    menu :label => "My Account"
  else
    menu :label => "I hate Users"
  end}

条件付きでリソースに名前を付ける方法を知っている人はいますか?

ありがとう!

4

1 に答える 1

0

これは機能します:

menu :label => proc { true ? "I Hate Users" : "My Account" }

しかし、その後にアクセスするには

    current_admin_user 

または

current_user

proc内からのオブジェクトは機能しません。ログインしたユーザー オブジェクトを ActiveAdmin::MenuBuilder スコープ内から取得する方法が見つかりません。提案があります。たとえば、変数を設定するhttps://stackoverflow.com/a/2513456/790737を参照してください

Thread.current

ログイン成功後。devise の認証後の作業に接続する必要があると思います。幸運を。

于 2013-02-01T15:40:11.437 に答える