【问题标题】:Active Admin: List only certain admin users in AdminUser page活动管理员:仅在 AdminUser 页面中列出某些管理员用户
【发布时间】:2018-01-05 14:14:26
【问题描述】:

我正在 Rails 中开发一个应用程序,并且我正在使用 ActiveAdmin 作为管理后端。

我会根据某些条件在 AdminUser 页面中列出管理员用户:

  • 仅列出 current_admin_user

现在,我有了这段代码,列出了所有注册的管理员用户:

ActiveAdmin.register AdminUser do

  menu :label => "Profilo", :priority => 4

  permit_params :email, :password, :password_confirmation

  #List of admin_users connected to the curent_user
  index  do
    selectable_column
    id_column
    column :email
    column :current_sign_in_at
    column :sign_in_count
    column :created_at
    actions
  end

end

如何只列出活跃的管理员用户?

提前致谢。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-5 activeadmin


    【解决方案1】:

    你只需要重写作用域集合方法。

    ActiveAdmin.register AdminUser do
    
      menu :label => "Profilo", :priority => 4
    
      permit_params :email, :password, :password_confirmation
    
      #List of admin_users connected to the curent_user
      index  do
        selectable_column
        id_column
        column :email
        column :current_sign_in_at
        column :sign_in_count
        column :created_at
        actions
      end
      controller do
        def scoped_collection
              #your logic
              current_admin_user
        end
      end
    
    end
    

    就是这样。希望对你有帮助

    【讨论】:

    • 对不起,我已经在@Hardik Upadhyay 下面发布了我的答案
    【解决方案2】:

    我会建议这个解决方案:

    ActiveAdmin.register AdminUser do
      # ... your code
      controller do
        def scoped_collection
          AdminUser.where(id: current_admin_user.id)
        end
      end
    end
    

    #scoped_collection 应该返回一个 ActiveRecord::Relation,因此您需要从您的 current_admin_user“制作”它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多