Добавить постоянный атрибут к объекту Grape
Я пытаюсь создать набор API с использованием Rails и Grape. Модель пользователя, как показано ниже:
{
"email": "foo@bar.com"
"name": "Foo Bar"
}
Теперь на уровне представления API я хочу, чтобы пользовательский объект был таким:
{
"object": "User"
"email": "foo@bar.com"
"name": "Foo Bar"
}
Поскольку я использую гем Grape Entity для представления своих моделей, вопрос на самом деле таков: как добавить дополнительный атрибут CONSTANT-value в класс Grape Entity? Ценю твою помощь!
1 ответ
Решение
Вы можете добавить дополнительное поле, добавив функцию в класс следующим образом:
class XXX < Grape::Entity
expose :object_name
expose :email
expose :name
private
def object_name
"User"
end
end
Но если имя функции - object, оно не будет работать. Вы выбрали другое имя для этого поля.
Для большего количества опций вы также можете использовать такой блок, в данном случае, независимо от того, какое имя поля вы используете.
class XXX < Grape::Entity
expose :object do |you_have_to_set_a_parameter_here|
"User"
end
expose :email
expose :name
end