2

関連する 2 つのモデルがあります。

class Item < ActiveRecord::Base
  belongs_to :carousel
end

class Carousel < ActiveRecord::Base
  has_many :items
end

JSON API Resources gem を使用してカルーセルへの API を開こうとしています。次のようなカルーセル属性といくつかの項目属性を表示する必要があります。

 {
   "data": [
     {
       "id": "1",
       "type": "carousels",
       "links": {
       "self": "http://localhost:3000/api/v1/carousels/1"
     },
     "attributes": {
       "name": "primary",
       "items": [
         {
           "title": "first item",   
           "file-url": "url",
           "index": 0
         },
         {
           "title": "second item",   
           "file-url": "url",
           "index": 1
         }
        ]
       }
     }
   ]
}

私のカルーセル リソース:

  module Api
    module V1
      class CarouselResource < JSONAPI::Resource
        immutable
        attributes :name, :items

        def self.records(options = {})
          user = options[:context][:current_user]
          user.carousels
        end
       end
     end
   end

私の結果:

  {
    "data": [
      {
         "id": "1",
         "type": "carousels",
         "links": {
           "self": "http://localhost:3000/api/v1/carousels/1"
        },
          "attributes": {
          "name": "primary",
          "items": [
            {
              "id": 3,
              "carousel_id": 1,
              "file": {
                "url": "url"
              },
              "title": "first item",
              "kind": 0,
              "index": 0,
              "created_at": "2017-02-23T10:31:53.592-03:00",
              "updated_at": "2017-03-01T10:30:52.533-03:00"
            },
            {
              "id": 5,
              "carousel_id": 1,
              "file": {
                "url": "url"
               },
              "title": "second item",
              "kind": 0,
              "index": 1,
              "created_at": "2017-03-01T10:30:07.011-03:00",
              "updated_at": "2017-03-01T10:30:07.011-03:00"
             }
          ]
        }
      }
    ]
  }
4

0 に答える 0