我很难让 rabl 符合 jsonapi.org 规范。我已经在 github 上看到了关于此的 wiki 条目(https://github.com/nesquena/rabl/wiki/Conforming-to-jsonapi.org-format),但我不明白如何在 rabl 中获取多个根级节点并且仍然有收藏工作。集合上的 wiki 条目说这应该有效
collection [@post] => :posts
attributes :id, :title
child @post => :links do
node(:author) { @post.author_id }
node(:comments) { @post.comments_ids }
end
对于单个根文档,它确实如此,但是一旦我尝试将meta
or添加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有能力做到这一点吗?