想问一下ruby grape里以下的present,with,type都是什么意思?看了小半天也没懂。谢谢。
module API
class Statuses < Grape::API
version 'v1'
desc 'Statuses.', {
params: API::Entities::Status.documentation
}
get '/statuses' do
statuses = Status.all
type = current_user.admin? ? :full : :default
present statuses, with: API::Entities::Status, type: type
end
end
end
文档地址:https://github.com/intridea/grape-entity/blob/master/README.md
迷茫2017-04-22 09:01:04
present 類似 rails 的 render
class XxxEntity
expose foo
end
present value, with: XxxEntity
// output:
// { foo: 'xxx' }
with 是指定資料用哪一個 Entity 來處理,你可以把 Entity 看做 json 的 erb,他提供了 json 的模板。
至於 type 不是 present 的參數,而是是傳給 Entity 的自訂參數,會傳遞到 Entity 內部,做一些處理。例如決定某個屬性需不需要顯示,或傳給 expose 的 block 作為 options
參數,可參考 README https://github.com/intridea/grape-entity#conditional-exposure