1

我正在尝试根据他的用户名更改 ActiveAdmin 标题菜单中的用户电子邮件。在 ActiveAdmin 文档中,有一种方法可以做到这一点config/initializers/active_admin.rb,但它只允许一个静态值,我需要对每个用户登录进行动态更改。

这是使其成为静态方式的代码:

config.namespace :admin do |admin|
 admin.build_menu :utility_navigation do |menu|
  menu.add label: 'My label', url: "url/to/whatever"
  admin.add_logout_button_to_menu menu
 end
end

我正在尝试做一些类似的事情:

config.namespace :admin do |admin|
 admin.build_menu :utility_navigation do |menu|
  menu.add label: current_admin_user.user_name, url: admin_admin_user_path(current_admin_user)
  admin.add_logout_button_to_menu menu
 end
end

这是不可能的,因为在应用程序启动时不存在会话(以及 ruby​​ 解释初始化程序的位置)。

有什么想法?

欢迎所有意见!

提前致谢!

4

1 回答 1

1

尝试使用 proc ,例如

 menu.add  :label  => proc{ display_name current_active_admin_user },
                  :url    =>  proc{  edit_admin_admin_user_path(current_active_admin_user) }  ,
                  :id     => 'current_user',
                  :if     => proc{ current_active_admin_user? }
于 2013-07-11T12:35:36.540 回答