我使用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它应该按照文档返回类似的内容
{
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
endrepresent 方法有问题。我不明白问题是什么?
发布于 2015-06-02 10:23:10
查看葡萄变化量g,您将发现表示函数将在下一个版本(0.4.6)中工作。
0.4.6 (Next) #114:添加“only”选项,选择应该返回哪些属性- @estevaoam。
所以,如果您现在想使用这个函数,可以使用最新的github版本。
gem 'grape-entity', github: "intridea/grape-entity", branch: "master"
https://stackoverflow.com/questions/30588211
复制相似问题