0

rabl を jsonapi.org の仕様に準拠させるのに苦労しています。これに関する github の wiki エントリ ( https://github.com/nesquena/rabl/wiki/Conforming-to-jsonapi.org-format ) を見たことがありますが、rabl で複数のルート レベル ノードを取得する方法がわかりません。コレクションが機能します。コレクションに関するウィキエントリは、これが機能するはずだと言っています

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

meta単一のルート ドキュメントの場合はそうですが、jsonapi.org 仕様で宣言されているようにドキュメントのルートにorを追加しようとするとすぐにlinks、それらのノードが既存のコレクション ノードに追加されます。ここに私の 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"
 }] 
}

ラブルはこれを行うことができますか?

4

1 に答える 1

0

次のようなことを試してください:

object false

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

child(@posts) do
  attributes :id, :title
end
于 2013-08-26T20:38:51.620 に答える