Как переименовать свойство / атрибут ресурса с помощью jsonapi-resources ruby gem
Я строю json api с помощью rails, используя гем json api-resources. Библиотека действительно отличная, она выполняет много работы.
Однако некоторые имена столбцов в нашей БД не очень значимы для отображения в API.
Итак, мой вопрос: возможно ли переименовать свойство / атрибут в ресурс?
Пример:
Допустим, у меня есть модель пользователя с атрибутом login
,
class User < ActiveRecord::Base
attr_accessor :login
end
И я хочу login
в API отображаются как username
Например:
class UserResource < JSONAPI::Resource
attribute :username, map_to: :login
end
Спасибо!
3 ответа
Установить :username
псевдоним для вашего :login
атрибут:
class User < ActiveRecord::Base
attr_accessor :login
alias_attribute :username, :login
end
Затем в JSONAPI::Resources
(JR) вы можете указать свой username
атрибут так:
class UserResource < JSONAPI::Resource
attribute :username
end
Установив псевдоним, вы отобразили username
приписать login
атрибут, поэтому не имеет значения, используете ли вы username
или же login
, он вернет то же значение.
Я думаю, что вам нужно использовать псевдоним или alias_method. http://blog.bigbinary.com/2012/01/08/alias-vs-alias-method.html
Как правило, самый простой способ изменить имя или значение атрибута - это переопределить атрибут. В вашем случае это будет:
attributes :username
def username
@model.login
end
Вот это в Readme: https://github.com/cerebris/jsonapi-resources