我有一个User模型,我想拥有一个user_status属性。
我希望将此属性存储为数据库中的整数。
我正在考虑创建一个枚举,然后将该枚举映射到整数值,以便我可以执行以下操作:
if user.status == MyEnum::RequiresApproval
..
..
在模型级别使用active_record,我可以使用枚举吗?
在这种情况下通常会做什么?
答案 0 :(得分:2)
枚举不是很像Rails。国家机器是。
查看'transitions'gem(link)(几乎是Rails Core的一部分)
然后你可以做以下事情......
#GemFile
gem "transitions", :require => ["transitions", "active_record/transitions"]
#And in your Model, do something like the following:
include ActiveRecord::Transitions
field :state, type: String
scope :active, where(state: 'active')
state_machine do
state :active
state :inactive
event :inactivate do
transitions :from => :active, :to => :inactive
end
event :activate do
transitions :from => :inactive, :to => :active
end
end
这对我来说也是一种过渡,不使用枚举和输入表格 - 但我没有错过它们