新手问题 cancan,如何将 role 字段设为 admin

tailang · 2013年07月25日 · 最后由 tailang 回复于 2013年07月25日 · 3025 次阅读

我看了一些别人写的项目,使用 cancan 作为权限,但是一直有个地方不太明白。给 User 表创建 role 字段,默认是 member,所以注册创建新的用户的角色都是 menber 如何将它设为 admin 呢?
添加的 role 字段

t.string :role, :null => false, :default => 'member'

model/user.rb

def admin?
    self.role == 'admin' #这里的admin哪里来的,如何设置的,在注册的时候没有角色的选项,默认应该都为menber
end

model/ability.rb

user ||= User.new

    can :read, :all

    if user.admin?
      can :manage, :all
    end

......

写在 seed 里面的吧,或者 console 手工加

#1 楼 @guyanbiao +1 一般都是 seed 里面生成一个 admin 用户。

@guyanbiao @xmonkeycn ,谢谢二位,终于消除了心中的疑惑。我刚刚看了下 rubychina 的源码,他是使用了 setting

def admin?
   Setting.admin_emails.include?(self.email)
 end

config/config.yml

defaults: &defaults
  app_name: "Ruby China"
  foot_html: "© Ruby China."
  domain: "127.0.0.1:3000"
  admin_emails:
    - "[email protected]"
需要 登录 后方可回复, 如果你还没有账号请 注册新账号