Ruby on rails 如何使用jsonapi资源ruby gem重命名资源的属性
我正在使用gem用rails构建jsonapi。图书馆真的很棒,它做了很多工作 然而,我们数据库中的一些列名在API中显示并不真正有意义 所以,我的问题是:是否可以在资源中重命名属性/属性 例如: 假设我有一个属性为Ruby on rails 如何使用jsonapi资源ruby gem重命名资源的属性,ruby-on-rails,ruby,jsonapi-resources,Ruby On Rails,Ruby,Jsonapi Resources,我正在使用gem用rails构建jsonapi。图书馆真的很棒,它做了很多工作 然而,我们数据库中的一些列名在API中显示并不真正有意义 所以,我的问题是:是否可以在资源中重命名属性/属性 例如: 假设我有一个属性为login的模型用户 class User < ActiveRecord::Base attr_accessor :login end 谢谢 我认为您需要使用alias或alias\u方法 通常,更改属性名称或值的最简单方法是重新定义属性。在您的情况下,它将是: attr
login
的模型用户
class User < ActiveRecord::Base
attr_accessor :login
end
谢谢 我认为您需要使用alias或alias\u方法 通常,更改属性名称或值的最简单方法是重新定义属性。在您的情况下,它将是:
attributes :username
def username
@model.login
end
在自述文件中:为您的
:login
属性设置:username
:
class User < ActiveRecord::Base
attr_accessor :login
alias_attribute :username, :login
end
通过设置别名,您已将
用户名
属性映射到登录
属性,因此无论您使用用户名
还是登录
,它都将返回相同的值。为属性设置别名是否有效?然后,如果您在JR中指定了属性:username
,它应该从:login
@Alexander中提取值。您能将您的答案放到答案中吗?它可以工作,而且似乎是其他别名中最好的选择,因为它也可以很好地用于搜索。当然!很高兴知道它起作用了。谢谢!这不是100%的纯解决方案(最好不要接触模型,只接触资源),但它仍然是其他别名选项中效果最好的,因为它不会破坏过滤(搜索)功能。谢谢谢谢但是,将无法正常工作的过滤(搜索)感谢回复!
class User < ActiveRecord::Base
attr_accessor :login
alias_attribute :username, :login
end
class UserResource < JSONAPI::Resource
attribute :username
end