2013-07-09 2 views
0

У меня много проблем с получением rabl, чтобы соответствовать спецификации jsonapi.org. Я видел запись wiki в github относительно этого (https://github.com/nesquena/rabl/wiki/Conforming-to-jsonapi.org-format), но я не понимаю, как получить несколько узлов корневого уровня в rabl, и все еще есть работы с коллекциями. Запись вики на коллекции говорит, что это должно работатьRabl соответствует jsonapi.org

collection [@post] => :posts 
attributes :id, :title 
child @post => :links do 
    node(:author) { @post.author_id } 
    node(:comments) { @post.comments_ids } 
end 

, который для одного корня документов он делает, но как только я пытаюсь добавить meta или links в корне документа, как заявлено в спецификации jsonapi.org , эти узлы добавляются к существующему узлу коллекции. Вот мой rabl_init.rb

require 'rabl' 
Rabl.configure do |config| 
    config.cache_sources = Rails.env != 'development' 
    config.include_child_root = false 
    config.include_json_root = false 
end 

Я хотел бы, что JSON выглядит следующим образом:

{ 
"links": { 
"posts.comments": "http://example.com/posts/{posts.id}/comments" 
}, 
"posts": [{ 
    "id": "1", 
    "title": "Rails is Omakase" 
    }, { 
    "id": "2", 
    "title": "The Parley Letter" 
}] 
} 

является Rabl способен делать это?

ответ

0

попробовать что-то вроде этого:

object false 

node(:links) do 
    {"posts.comments" => "http://example.com/posts/{posts.id}/comments"} 
end 

child(@posts) do 
    attributes :id, :title 
end 
Смежные вопросы