access_by调用不能与块“可以”定义一起使用

问题描述

非常有趣的是,我没有在can声明中使用块,但是在打开活动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

解决方法

我为主动管理员创建了一种独特的功能,其中我没有使用这种授权,而为前端创建了另一种功能。