【问题标题】:Creating a Migration for Admin Users为管理员用户创建迁移
【发布时间】:2016-01-13 13:13:59
【问题描述】:

如何创建一个迁移文件来创建一个具有“管理员”角色的用户?我写了以下内容:

rails g migration User

我怎样才能给这个用户一个“管理员”的角色?

【问题讨论】:

    标签: ruby-on-rails activerecord migration


    【解决方案1】:

    迁移可能有两个作用:

    1. 数据库中结构的操作
    2. 数据库中数据的操作

    一般来说,最好将它们用于第一个,并尽量避免第二个(这可能会导致后续升级路径出现问题)。

    您的问题不清楚您是要创建一个包含表示管理权限的列的 User 表,还是要尝试将管理用户添加到现有的 Users 表中。

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

    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.xml 中。 RB:

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

    然后在控制台运行下面一行

    rake db:seed
    

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

    【讨论】:

      【解决方案2】:

      您可以将用户和管理员放在同一个表中,并添加一个名为“角色”的列,该列将是布尔值,它将决定当前用户是否是管理员

      rails g migration user role:boolean name
      

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

      【讨论】:

        猜你喜欢
        • 2014-01-04
        • 2019-05-17
        • 1970-01-01
        • 1970-01-01
        • 2013-04-24
        • 2014-03-12
        • 2016-05-09
        • 1970-01-01
        • 2018-12-24
        相关资源
        最近更新 更多