如何在枚举(轨道)中将枚举呈现为字符串而不是整数?

问题描述 投票:2回答:1

我正在使用铁轨和蒙古型宝石。在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" } } 任何帮助将不胜感激。

ruby-on-rails mongodb enums mongoid
1个回答
0
投票

这听起来类似于我不久前回答的问题: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
© www.soinside.com 2019 - 2024. All rights reserved.