Bonjour,
Je rencontre un petit soucis avec la fonction to_ext_json du plugin
Ext_scaffold.
Mon appel est le suivant :
format.ext_json { render :json => find_accounts.to_ext_json( :count =>
Account.count) }
Et voici ce qui m’est retourné :
{
“accounts”: [
{“account”:
{“lastname”: “Chauveau”, “id”: 1, “firstname”: “Tony”, “login”:
“tchauveau”, “created_at”: “2008-06-08T10:35:50Z”}
},
{“account”:
{“lastname”: “test”, “id”: 2, “firstname”: “test”, “login”:
“test”, “created_at”: “2008-06-08T10:35:50Z”}
}
],
“results”: 2
}
Alors que ce que je souhaite obtenir devrait ressembler à ceci :
{
“results”: 2,
“accounts”: [
{“lastname”: “Chauveau”, “id”: 1, “firstname”: “Tony”, “login”:
“tchauveau”, “created_at”: “2008-06-08T10:35:50Z”},
{“lastname”: “test”, “id”: 2, “firstname”: “test”, “login”: “test”,
“created_at”: “2008-06-08T10:35:50Z”}
]
}
Bien sur, la solution “simple” serait de formater moi-meme la sortie
mais j’aimerais tout de meme savoir ce qui se passe et pourquoi cette
fonction ne retourne pas ce qu’elle est sensée retourner (la sortie que
je souhaite est au meme format que l’exemple donné en commentaire dans
la fonction to_ext_json :
return Ext compatible JSON form of an Array, i.e.:
# {"results": n,
# "posts": [ {"id": 1, "title": "First Post",
# "body": "This is my first post.",
# "published": true, ... },
# ...
# ]
# }
def to_ext_json(options = {})
if given_class = options.delete(:class)
element_class = (given_class.is_a?(Class) ? given_class :
given_class.to_s.classify.constantize)
else
element_class = first.class
end
element_count = options.delete(:count) || self.length
{ :results => element_count,
element_class.to_s.underscore.pluralize => self }.to_json(options)
end
)