0
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

这是我的能力档案。我希望它使第一个注册用户成为管理员,并赋予他们编辑整个网页的所有权限,而用户只能管理帖子,而访客用户只能阅读帖子。但是,当我使用 if can 时?在我的代码中,管理员获得了与普通用户相同的访问权限。我究竟做错了什么?

4

1 回答 1

0

在我的工作中,我必须做同样的事情,但要与公司合作。

我检查的每个公司创建是否是第一个,如果是,我将其设置为管理员,否则设置为普通用户。

if can?此处用于定义菜单是隐藏还是可见。只有这样,如果用户键入 URL,您仍将访问该页面,因此您需要添加load_and_authorize_resource,以便用户收到有关没有权限的消息。

那是你需要的吗?=)

于 2013-03-22T12:06:52.087 回答