2

我想根据用户角色有条件地更改 ActiveAdmin 中资源的标签。我想保留管理员名称的默认复数形式,但对于普通用户,我需要更改名称。

即我有一个资源Users,我想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

成功登录后。我想您将不得不参与设计的身份验证后工作。祝你好运。

于 2013-02-01T15:40:11.437 回答