Виноградная сущность не работает
Я использую grape
драгоценный камень для API
а также grape-entity
генерировать ответы.
просто show/get
запрос отвечает нормально, как возвращение только данных из ActiveRecord Object
, хорошо
Когда я пытаюсь включить данные из has_many
Отношение это вернуть все данные, связанные с этим объектом. хорошо
Но когда я represent
данные как
post = Post.first
data = V1::Entities::PostEntities.represent(post, only: [:id, { comments: [:id, :body] }])
data.as_json
Он должен вернуть что-то вроде этого согласно документации:
{
id: 1,
comments: [{
id: 1,
body: 'example'
}]
}
Но это возвращает:
{
id: 1,
comments: [{
id: 1,
user_id: 1,
body: 'example',
created_at: 'some_timestamp',
updated_at: 'also_some_timestamp',
is_deleted: 0,
}]
}
мой PostEntities
содержит:
module V1
module Entities
class PostEntities < Grape::Entity
expose :id
expose :comments, with: V1::Entities::CommentEntities
end
end
end
мой CommentEntities
содержит:
module V1
module Entities
class CommentEntities < Grape::Entity
expose :id
expose :user_id
expose :body
expose :created_at
expose :updated_at
expose :is_deleted
end
end
end
что-то не так с represent
метод. я не понимаю, в чем проблема?
1 ответ
Проверьте виноград CHANGELOG, и вы узнаете, что функция представления будет работать в следующей версии (0.4.6).
0.4.6 (Далее) #114: Добавлена опция "только", которая выбирает, какие атрибуты должны быть возвращены - @estevaoam.
Так что, если вы хотите использовать эту функцию прямо сейчас, вы можете использовать новейшую версию github.
gem 'grape-entity', github: "intridea/grape-entity", branch: "master"