我有一个带有enum
的模型:
class MyModel < ApplicationRecord
enum my_enum: [:status1, :status2, :status3, :status4]
# .........
end
我想在数据库中将字段命名为“状态”,而在我的模型中则应将其命名为“ my_enum”
这可能吗?如何在数据库中指定源列的名称?
我知道Rails中“枚举”的“ _prefix”和“ postfix”属性,这不是我所需要的。
答案 0 :(得分:5)
ActiveRecord :: Enum没有此类选项。
但是您可以使用alias_attribute
创建别名,然后为别名创建一个枚举映射:
class MyModel < ApplicationRecord
alias_attribute :my_enum, :status
enum my_enum: [:status1, :status2, :status3, :status4]
end
我认为这不是一个好主意,因为枚举映射未指向实际的列名,可能会出现意外错误。除了卡在一个非常糟糕的旧数据库之外,我真的不能想到此功能的有效用例。