我正在使用grape
gem 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
它应该按照documentation返回类似的内容:
{
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
方法存在问题。我没有得到问题所在?
答案 0 :(得分:0)
查看葡萄CHANGELOG,你会发现代表功能在下一个版本(0.4.6)中有效。
0.4.6(下一步)#114:添加'only'选项,选择应返回哪些属性 - @estevaoam。
所以,如果你现在想要使用这个功能,你可以使用最新的github版本。
gem 'grape-entity', github: "intridea/grape-entity", branch: "master"