2016-01-13 157 views
-2

如何创建将创建角色为“admin”的用户的迁移文件?我写了以下内容:为管理员用户创建迁移

rails g migration User 

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

回答

1

迁移可以起到两个作用:

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

一般来说它是最好的做法首先使用它们,并尝试避免第二次(这可能会导致升级路径出现问题)。

您的问题不清楚您是否要求创建具有表示管理权限的列的用户表,或者您是否尝试将管理用户添加到现有的用户表中。

如果你想创建一个用户表,你将要做到以下几点:

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

+0

第二个选项为我做了诀窍。谢谢 :) – Suraj

0

可以让用户和管理员在同一个表,并添加更多的列被称为“角色”,这将是布尔值,这将决定当前用户是管理员或不

rails g migration user role:boolean name 

如果角色是不是假的它不是管理员。