Ruby on rails 4 rails pundit枚举角色:是否需要迁移以创建新列?

Ruby on rails 4 rails pundit枚举角色:是否需要迁移以创建新列?,ruby-on-rails-4,activerecord,enums,Ruby On Rails 4,Activerecord,Enums,这是Danile Kehoe发布的答案: “角色在app/models/User.rb文件(用户模型)中定义 有关详细信息,请参阅ActiveRecord::Enum的文档。ActiveRecord Enum方法在Rails 4.1中是新的。” 我的问题是,这不需要运行迁移来向用户表添加“:role”列吗?我不知道pundit将如何/在其他地方存储散列,除非pundit有一些自动的方法。我的用户表(与此不同的示例)是使用Desive创建的,没有:role列。然而我的本能是添加一个,但我不想因为与

这是Danile Kehoe发布的答案:

“角色在app/models/User.rb文件(用户模型)中定义

有关详细信息,请参阅ActiveRecord::Enum的文档。ActiveRecord Enum方法在Rails 4.1中是新的。”


我的问题是,这不需要运行迁移来向用户表添加“:role”列吗?我不知道pundit将如何/在其他地方存储散列,除非pundit有一些自动的方法。我的用户表(与此不同的示例)是使用Desive创建的,没有:role列。然而我的本能是添加一个,但我不想因为与权威人士的某些东西冲突而破坏应用程序

是的,你是对的。如果您打算以这种方式使用它,则必须运行迁移并将角色添加到整数类型的用户模型中:

rails g migration AddRoleToUser role:integer
方法
set\u default\u role
为新创建的角色为:user的用户设置默认角色

user.admin! # sets the role to "admin"
user.admin? # => true
user.role  # => "admin"
rails g migration AddRoleToUser role:integer