我正在使用铁轨和蒙古型宝石。在Mongoid模型中使用Enum时,使用extend Enumerize
即可正常工作。但是在将数据作为JSON呈现到前端(例如,使用ModelName.where(condition)
)时,枚举字段的响应不是枚举的字符串值,而是整数。
示例:
enumerize :field_name, in: { abc: 0, def: 5, ghi: 10 }, predicates: true, scope: :shallow
呈现的json看起来像:
{
"model_name": {
"field_name": 5 //instead of "def"
}
}
任何帮助将不胜感激。
这听起来类似于我不久前回答的问题:Rails 5.2 API - Returning enum value in JSON
def as_json(options = {})
super.tap do |hash|
hash['field_name'] = ModelName::enum[field_name]
end
end