我想在现有日期使用enum
。表中的status
列包含数千条记录。
问题是我数据库中的记录是大写的,例如Active,Pending,Awaiting Review,Closed等
现在我定义一个枚举
enum status: [:active,:closed,:pending,:awaiting_review]
由于资金原因,下划线而不是空格,它为什么不起作用。
[当我执行Model.first.status
时返回nil
您的问题是,您正在尝试执行此Model.status
,它不会返回任何内容,因为status
是实例方法,而不是类方法,如果您想查看所有状态,请执行此操作
Model.statuses
如果要获取Model对象的状态,它将返回一个哈希,这是一个示例
Model.first.status
而且,默认情况下,枚举需要一个整数列,因此,如果您这样定义枚举,则>]
enum status: [:active,:closed,:pending,:awaiting_review]
然后,表中的值分别为
0, 1, 2, 3
。
因此,您可能希望将status
列迁移到integer
,然后编写rake任务以根据枚举值将现有值更新为新值!
希望有所帮助