【发布时间】:2016-01-13 13:13:59
【问题描述】:
如何创建一个迁移文件来创建一个具有“管理员”角色的用户?我写了以下内容:
rails g migration User
我怎样才能给这个用户一个“管理员”的角色?
【问题讨论】:
标签: ruby-on-rails activerecord migration
如何创建一个迁移文件来创建一个具有“管理员”角色的用户?我写了以下内容:
rails g migration User
我怎样才能给这个用户一个“管理员”的角色?
【问题讨论】:
标签: ruby-on-rails activerecord migration
迁移可能有两个作用:
一般来说,最好将它们用于第一个,并尽量避免第二个(这可能会导致后续升级路径出现问题)。
您的问题不清楚您是要创建一个包含表示管理权限的列的 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。
【讨论】:
您可以将用户和管理员放在同一个表中,并添加一个名为“角色”的列,该列将是布尔值,它将决定当前用户是否是管理员
rails g migration user role:boolean name
如果角色为假而不是管理员。
【讨论】: