6

私はこのrablテンプレートを持っています:

object @photo
attributes :id
child :comments do
  attributes :id, :body
end

これにより、次の JSON 応答が得られます。

{
  photo: {
    id: 1,
    comments: [
      { 
        comment: {
          id: 1,
          body: 'some comment'
        }
      },
      { 
        comment: {
          id: 2,
          body: 'another comment'
        }
      }
    ]
  }
}

しかし、私はそれを次のようにしたい:

{
  id: 1,
  comments: [
    { 
      id: 1,
      body: 'some comment'
    },
    { 
      id: 2,
      body: 'another comment'
    }
  ]
}

rabl が配列内の各要素を という追加のオブジェクトでラップするのはなぜですかcomment。このように、javascript でコレクションにアクセスするときは、次のように記述する必要があります。

var comment = image.comments[0].comment

それ以外の:

var comment = image.comments[0]

:commentsオブジェクトの属性リストに含めると、@photo希望どおりに機能することはわかっていますが、オブジェクトごとに別のレベルのネストされた関連付けが必要なcomment場合、を使用する以外にそれを処理する方法はありませんchildが、それは私に望まない JSON 応答。

多分私は全体を誤解しているだけです-誰かが説明または助けてくれますか? ありがとう!

4

1 に答える 1

7

とった!

で新しいファイルを作成しますconfig/initializers/rabl_config.rb

Rabl.configure do |config|
  config.include_json_root = false
  config.include_child_root = false

end
于 2012-03-02T21:47:39.240 に答える