Ruby on rails CanCanCan和rails:限制枚举属性允许的值?

Ruby on rails CanCanCan和rails:限制枚举属性允许的值?,ruby-on-rails,cancan,ruby-on-rails-6,cancancan,Ruby On Rails,Cancan,Ruby On Rails 6,Cancancan,我正在rails 6应用程序中使用CanCanCan。我知道我可以限制特定用户可以编辑的属性列表 但是,是否也有方法限制属性的allowe值 更具体地说,我有一个User类,其角色属性如下: class User < ApplicationRecord enum role: [:author, :editor, :admin] end class UsersController < ApplicationController load_and_authorize_reso

我正在rails 6应用程序中使用CanCanCan。我知道我可以限制特定用户可以编辑的属性列表

但是,是否也有方法限制属性的allowe值

更具体地说,我有一个
User
类,其角色属性如下:

class  User < ApplicationRecord
  enum role: [:author, :editor, :admin]
end
class UsersController < ApplicationController
  load_and_authorize_resource
  def create
    if current_user.editor? and @user.admin?
      raise CanCan::AccessDenied.new('Cannot create admin user!', action: :create, subject: @user)
    end

    # ...
  end
end

但是,这显然意味着我不能使用
can?
cannot?
方法。所以我想知道是否有一种更优雅的方法可以直接使用CanCanCan实现这一点?

无法:创建、用户、角色:“admin”应该可以用于创建新用户,但如果我正确理解文档,编辑将不受此限制。谢谢,我将尝试一下!我想这比什么都没有好…