Ruby on rails CanCanCan和rails:限制枚举属性允许的值?
我正在rails 6应用程序中使用CanCanCan。我知道我可以限制特定用户可以编辑的属性列表 但是,是否也有方法限制属性的allowe值 更具体地说,我有一个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
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”应该可以用于创建新用户,但如果我正确理解文档,编辑将不受此限制。谢谢,我将尝试一下!我想这比什么都没有好…