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中返回枚举值的主要内容,如果未能解决你的问题,请参考以下文章
Rails Set-Cookie on json API 响应
在 Rails 4 中用于 JSON 处理的 jbuilder vs rails-api/active_model_serializers