为管理员用户创建迁移

Creating a Migration for Admin Users

如何创建一个迁移文件来创建具有 "admin" 角色的用户?我写了以下内容:

rails g migration User

如何给这个用户 "admin" 角色?

迁移有两个作用:

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

一般来说,最好在第一种情况下使用它们,并尽量避免第二种情况(这可能会导致升级路径出现问题)。

您的问题不清楚您是否要求创建一个用户 table 具有代表管理权限的列,或者您是否试图将管理用户添加到现有用户 table.

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

rails g model users is_administrator:boolean other_column:type

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

另一方面,如果您已经有一个用户 table,并且正在尝试 添加 的能力区分管理员和 non-administrators,你会更适合这样的东西:

rails g migration add_is_administrator_to_users is_administrator:boolean

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

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

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

rake db:seed

如果这没有意义,我鼓励您阅读 Active Record Migrations, or (in the case that you choose to leverage the third method) Active Record Seeds

您可以将用户和管理员放在同一个 table 中,并再添加一个名为 "role" 的列,它将是布尔值,它将决定当前用户是否是管理员

rails g migration user role:boolean name

如果角色为 false,则表示它不是管理员。