有条件地更改资源名称Activeadmin

时间:2012-09-14 14:15:20

标签: ruby-on-rails-3 activeadmin

我想根据用户角色有条件地更改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}

任何人都知道如何有条件地命名资源吗?

谢谢!

1 个答案:

答案 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

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