【发布时间】:2014-11-28 18:37:12
【问题描述】:
这是来自 Danile Kehoe 的回答:
“角色在 app/models/User.rb 文件(用户模型)中定义。
class User < ActiveRecord::Base
.
.
.
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
def set_default_role
self.role ||= :user
end
end
应用程序使用 ActiveRecord 枚举方法来管理角色。 ActiveRecord 提供了方便的查询角色属性的方法:
user.admin! # sets the role to "admin"
user.admin? # => true
user.role # => "admin"
有关详细信息,请参阅 ActiveRecord::Enum 的文档。 ActiveRecord 枚举方法是 Rails 4.1 中的新方法。”
我的问题是,这是否需要运行迁移以将“:role”列添加到 User 表?我不知道权威人士如何/在哪里存储哈希,除非权威人士有一些自动的方式来做这件事。我的用户表(与这个不同的示例)是使用设计创建的,并且没有 :role 列。然而。我的直觉是添加一个,但我不想通过与 Pundit 引擎盖下的某些东西发生冲突来破坏应用程序。
【问题讨论】:
标签: ruby-on-rails-4 activerecord enums