按管理员级别自定义ActiveAdmin CSV输出

时间:2012-10-08 21:02:00

标签: ruby-on-rails ruby csv activeadmin

我想以类似的方式限制CSV下载列,我限制索引区域的项目。

对于我的索引,我有:

index do
    column "Name" do |purchase|
      purchase.user.full_name
    end
    if current_admin_user.superuser?
      column "User" do |purchase|
          link_to purchase.user.email, admin_user_path(purchase.user)
      end
    end
end

只有高级管理员才能查看用户的电子邮件地址。

如果我对CSV执行相同操作,则AA会抛出错误:

undefined local variable or method `current_admin_user'

我可以在函数中执行current_admin_user检查而不会出现错误:

column "User Name" do |purchase|
  if current_admin_user.superuser?
    purchase.user.full_name.gsub(',','')
  end
end

但是这有点草率,因为它让我为较少的管理员用户留下了死列。

有人为我找到了解决方案吗?

1 个答案:

答案 0 :(得分:0)

尝试

index do
  column "Name" do |purchase|
    purchase.user.full_name
  end
  column "User", :if => proc{ current_admin_user.superuser? } do |purchase|
      link_to purchase.user.email, admin_user_path(purchase.user)
  end
  end
end