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
这是我的能力文件。我希望它能让第一个注册用户成为管理员,并为他们提供编辑整个网页的所有权限,而用户只能管理帖子,并且只允许用户阅读帖子。但是,当我使用 如果可以?在我的代码中,管理员被授予与普通用户相同数量的访问权限。我究竟做错了什么?如何使第一个用户具有能力文件的管理员(cancan)
你确定你传递的初始化用户是*实际上是一个管理员?我会用'user.inspect'作为第一行删除一个日志记录调用,以确保我有一个管理员用户。其次,你有没有尝试'如果user.admin?'。我假设它是一个布尔字段而不是整数。 – 2013-03-22 11:46:33