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

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

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

例:

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

JSON响应将其返回为:

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

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

ruby-on-rails json postgresql api response
2个回答
1
投票

试一试

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

0
投票

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

def role_id
  User.roles[self.role]
end

然后你role_id方法

© www.soinside.com 2019 - 2024. All rights reserved.