1

ネストされたノード名を変更するrablに問題があります。

例、これが私のtargets/index.json.rablです

collection @customers => :targets
extends 'customers/profile'

そして、これが私のcustomers/profile.json.rablです

object @customer => :profile
attributes :id, :username, :customer_id, :first_name, :last_name, :avatar_url

targets.json(targets#index)にヒットしたときの出力:

{
    "targets": [
        {
            "target": {
                "id": 3,
                "username": null,
                "first_name": "Scott",
                "last_name": "Thomas",
                "avatar_url": null
            }
        },
        {
            "target": {
                "id": 3,
                "username": null,
                "first_name": "Thomas",
                "last_name": "MacKay",
                "avatar_url": null
            }
        }
    ]
}

問題は、「targets」配列内の「target」ノードに「profile」という名前を付けることを望んでいることです。このような:

{
        "targets": [
            {
                "profile": {
                    "id": 3,
                    "username": null,
                    "first_name": "Scott",
                    "last_name": "Thomas",
                    "avatar_url": null
                }
            },
            {
                "profile": {
                    "id": 3,
                    "username": null,
                    "first_name": "Thomas",
                    "last_name": "MacKay",
                    "avatar_url": null
                }
            }
        ]
    }

「ターゲット」ノードではなく「プロファイル」ノードに注意してください。

どうすればこれを達成できますか?

4

2 に答える 2

2

これもうまくいくはずだと思います。これをtargets/index.json.rablに入力します。

collection @customers => :targets

child :profile do
  extends 'customers/profile'
end

そしてcustomers/profile.json.rabl :

object @profile
attributes :id, :username, :customer_id, :first_name, :last_name, :avatar_url
于 2013-02-19T14:54:54.217 に答える
0

このようなものはうまくいくはずです...現在RABLはもう使用していませんが、これが私が覚えている方法です...

node :profile do 
  attributes :id, :username, :customer_id, :first_name, :last_name, :avatar_url
end
于 2013-02-13T12:44:08.510 に答える