2016-09-13 6 views
0

Я использую активную модель сериалайзер и jsonapi форматрубин Активная модель сериализатор с jsonapi, как охарактеризовать ссылки

мне нужно получить:

{ 
    "data": { 
    "id": "1234", 
    "type": "search", 
    "relationships": { 
     "foo": { 
     "data": [ 
      { 
      "id": "12", 
      "type": "foo" 
      } 
     ], 
     "links": "/foo/12" 
     },   
    } 
    }, 

Я попробовал несколько конфигураций для ссылок, но это не делает дисплей, как указано выше

require 'active_model_serializers' 
module test 
class SearchSerializer < ActiveModel::Serializer 
    has_one :foo, data: true, links: {self: true, related: true} 
    type 'search' 
end 
end 

Я хочу уважать формат jsonapi ли кто-нибудь с хорошим примером активной модели сериализатором и json_api показ «ссылки» как shwon над json?

На данный момент только следующее отображается

{"data": { 
"id": "1234", 
"type": "search", 
"relationships": { 
    "foo": { 
    "data": [ 
     { 
     "id": "12", 
     "type": "foo" 
     } 
    ] 
} 

},

Заметим также, что я пытаюсь сделать это за пределами рельсами рамки.

ответ

0

После просмотра того, что доступно в рубине для JSONAPI без рельсов, я закончил использовать драгоценный камень JSONAPI-serializers, он намного легче установить и легче загружать (меньше зависимостей). Это подходит лучше с PORO

Мой сериализатору становится

require_relative ./common_serializer module JsonSerializer class SearchSerializer < CommonSerializer attributes :foo, include_links: true def relationship_related_link(attribute_name) nil end end end Этот камень намного легче использовать в качестве методов, создающих JSON можно изменить в сериализатором (или в commonClass)