Rails 5.2 API - 在JSON中返回枚举值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 5.2 API - 在JSON中返回枚举值相关的知识,希望对你有一定的参考价值。

我目前在我的用户列中有一个postgres枚举类型设置为roles。它按预期工作。

例:

class User < ApplicationRecord
  enum role: { admin: "Admin", viewer: "Viewer" } 
end

JSON响应将其返回为:

{
  "id": 1,
  "role": "admin"
}

但是,role属性返回键而不是枚举值。这有解决方案吗?

答案

试一试

def as_json(options = {})
  super.tap do |hash|
    hash['role'] = User::roles[role]
  end
end
另一答案

我会这样做的。在User模型文件中

def role_id
  User.roles[self.role]
end

然后你role_id方法

以上是关于Rails 5.2 API - 在JSON中返回枚举值的主要内容,如果未能解决你的问题,请参考以下文章

API Rails 上的获取请求不返回 json

将Chartkick与rails 5.2 api应用集成?

Rails Set-Cookie on json API 响应

Rails:如何将对象数组的哈希转换为 json

Rails 4 - 只响应 JSON 而不是 HTML

在 Rails 4 中用于 JSON 处理的 jbuilder vs rails-api/active_model_serializers