Rails 5使用包括装饰关联的对象呈现JSON

时间:2017-02-01 23:16:16

标签: ruby-on-rails ruby-on-rails-5 draper

My Rails 5 app有一个Ride模型和一个Waypoint模型,其中一个Ride有很多Waypoint

我还有一个航点装饰器,装饰一些航点字段。

在我的Rails应用程序中,我想返回一个游乐设施列表和所有嵌套路标点。

@api_v1_rides = Ride.all
render json: {
      status: 200,
      rides: @api_v1_rides
}.to_json( :include => [:waypoints])

效果很好。

但我想返回装饰的航点,所以我尝试的是:

@api_v1_rides = Ride.all
render json: {
      status: 200,
      rides: @api_v1_rides
}.to_json( :include => [:waypoints.decorate])

但是这给了我一个错误,说装饰不是航路点的功能。 我正在使用Drape Gem进行装饰,它在应用程序的其他部分工作正常。

1 个答案:

答案 0 :(得分:1)

对于复杂的json结构,我建议你使用这个gem active model serializer