class Ability
include CanCan::Ability
def initialize(user)
user ||= User.new
if user.admin == 1 #admin
can :manage, :all
elsif
user.id != nil # registred users
can :read, :all
can :create, Post
cannot :manage, User
else
can :read, :all # guest user (not logged in)
cannot :manage, User
end
这是我的能力档案。我希望它使第一个注册用户成为管理员,并授予他们编辑整个网页的所有权限,而用户只能管理帖子和访客,只允许用户阅读帖子。但是当我使用时 如果能?在我的代码中,管理员获得与普通用户相同的访问权限。我做错了什么?
答案 0 :(得分:0)
在我的工作中,我必须做与公司相同的事情。
每个公司创建我检查是否是第一个,如果是,我将其设置为管理员,否则,普通用户。
此处使用if can?
来定义菜单是隐藏还是可见。只有这样,如果用户键入URL,用户仍然会访问该页面,因此您需要添加load_and_authorize_resource
,以便用户收到有关未获得许可的消息。
这就是你需要的吗? =)