accessible_by 调用不能与块 'can' 定义一起使用

The accessible_by call cannot be used with a block 'can' definition

有趣的是,我没有在 can 声明中使用块,但是当我打开 active admin 时出现了这个错误。我不知道如何解决它。

[:forename, :surname, :biography, :country].each do |attr_name|
  can :read, User, attr_name,
    id: User.joins(:visibilities)
      .where(visibilities: { level: "public", attribute_name: attr_name })
      .pluck(:id)
end

我为活跃的管理员创建了一个独特的能力,我没有使用这种授权,并为前端创建了一个不同的能力。