我想根据用户角色有条件地更改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}
任何人都知道如何有条件地命名资源吗?
谢谢!
答案 0 :(得分: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
成功登录后。我想你将不得不参与设计的后认证工作。祝你好运。