2

我的项目的要求现在迫使我将参数传递给嵌套实体。我有一个实体 A 和一个实体 B,它们显示一些信息,并且需要系统上的 A 标识符来构建它们。

module Services
 module Trips
  class TripPreviewResponseEntity < Grape::Entity
   expose :id
   expose :title
   expose :duration
   expose :total_price
   expose :description
   expose :details
   expose :destinations, using: Destinations::DestinationResponseEntity
  end
 end
end

在上面的示例中,我想做这样的事情:

expose :destinations, using: Destinations::DestinationResponseEntity, :trip_id => object.id

并在嵌套实体中以这种方式使用 trip_id 参数选项:

expose :trip_info do |item,options|
   item.show(options[:trip_id])
end

但是说对象没有定义到实体中是失败的。有没有办法做到这一点?任何想法?

4

1 回答 1

2
module Services
 module Trips
  class TripPreviewResponseEntity < Grape::Entity
   expose :id
   expose :title
   expose :duration
   expose :total_price
   expose :description
   expose :details
   expose :destinations do |trip, _options| 
     DestinationResponseEntity.represent(trip.destinations, trip_id: trip.id)
   end
  end
 end
end
于 2019-01-20T14:55:42.003 回答