我正在尝试使用rails_admin_pundit添加基于角色的访问权限 到rails_admin。
当我点击rails_admin中的users表时,我收到此错误。
ArgumentError at /user. User(id: integer, email: string, ... 'shortened' ...role: integer) is not an ActiveRecord::Relation
我创建了一个应用程序:
https://github.com/RailsApps/rails-devise-pundit
并按照以下使用说明进行操作:
https://github.com/sudosu/rails_admin_pundit
这是我的user_policy.rb
只是为了开始......
def rails_admin?(action)
case action
when :destroy, :new
false
else
@current_user.admin!
end
end
附上了几个带有错误的应用程序,以及我在按下用户模型名称链接之前看到的内容的屏幕截图。
another app with the same error
不需要:dropbox链接... link to screenshot, error page, and two apps that I have this problem in...
有人可以帮我这个吗?
答案 0 :(得分:1)
当我们生成代码时,我们有:
class Scope < Scope
def resolve
scope
end
end
所以,我们需要定义范围
class Scope < Scope
def resolve
if @user.role.description == 'admin'
User.all
else
User.where(id: @user.id)
end
end
end