为管理员用户创建迁移

时间:2016-01-13 13:13:59

标签: ruby-on-rails activerecord migration

如何创建一个迁移文件,该文件将创建一个角色为“admin”的用户?我写了以下内容:

rails g migration User

如何向该用户授予“admin”角色?

2 个答案:

答案 0 :(得分:1)

迁移可能有两个功能:

  1. 数据库中结构的操作
  2. 数据库中数据的操作
  3. 一般来说,最好先将它们用于第一个,并尽量避免使用第二个(这可能会导致问题进入升级路径)。

    您是否要求创建一个包含代表管理权限的列的用户表,或者您是否尝试将管理用户添加到现有用户表时,您的问题不明确。

    如果您尝试创建用户表,则需要执行以下操作:

    rails g model users is_administrator:boolean other_column:type
    

    这些行中的某些内容将生成一个迁移(和匹配模型),允许创建用户,其中包含可被视为管理权限的列。

    另一方面,如果您已有用户表,并且正在尝试添加区分管理员和非管理员的能力,那么您会更适合通过类似的东西:

    rails g migration add_is_administrator_to_users is_administrator:boolean
    

    最后,如果您询问如何将用户添加到表已存在的用户并且包含列" is_administrator" ,我建议您添加以下行到db / seeds.rb:

    User.create( is_administrator: true, other_column: 'other value' )
    

    然后在控制台中运行以下行

    rake db:seed
    

    如果这没有意义,我建议您阅读Active Record Migrations或(如果您选择使用第三种方法)Active Record Seeds

答案 1 :(得分:0)

您可以在同一个表中添加用户和管理员,并添加一个名为“role”的列,该列将是boolean,它将决定当前用户是否为admin

rails g migration user role:boolean name

如果角色为假,则不是管理员。