Ruby on rails 如何在mongoid(rails)中将枚举呈现为字符串而不是整数?

Ruby on rails 如何在mongoid(rails)中将枚举呈现为字符串而不是整数?,ruby-on-rails,mongodb,enums,mongoid,Ruby On Rails,Mongodb,Enums,Mongoid,我正在使用rails和mongoid gem。在Mongoid模型中使用Enum时,使用extend-Enumerize可以正常工作。但是在将数据作为JSON呈现到前端时(例如使用ModelName.where(condition)),枚举字段的响应不是枚举的字符串值,而是整数 例如: enumerize:field_name,in:{abc:0,def:5,ghi:10},谓词:true,作用域::shallow 呈现的json如下所示: { “型号名称”:{ “字段名称”:5//而不是“de

我正在使用rails和mongoid gem。在Mongoid模型中使用Enum时,使用
extend-Enumerize
可以正常工作。但是在将数据作为JSON呈现到前端时(例如使用
ModelName.where(condition)
),枚举字段的响应不是枚举的字符串值,而是整数

例如:

enumerize:field_name,in:{abc:0,def:5,ghi:10},谓词:true,作用域::shallow

呈现的json如下所示:

{
“型号名称”:{
“字段名称”:5//而不是“def”
}
}

任何帮助都将不胜感激。

这听起来像是我不久前回答的一个问题:


请尝试ModelName.where(condition).as_json,然后再渲染。谢谢,但遗憾的是,在重新阅读问题后,它没有起作用,我认为这不是正确的答案。我想试试@code\u aksThanks的建议。我会试试的。我尝试了类似的代码,但之前我在mongoid配置文件中放置了类似的代码。那似乎不起作用。但我将尝试将其放置在模型文件中。
def as_json(options = {})
  super.tap do |hash|
    hash['field_name'] = ModelName::enum[field_name]
  end
end