Je suis sûr qu'il existe une solution simple pour cela, mais je suis nouveau sur Rails et j'ai besoin d'aide pour la syntaxe.Rails 2.3.8: comment analyser JSON avec des noms de champs autres que les colonnes DB
Dans mon contrôleur je:
@products = Product.all
format.json { render :json => @products }
Et il fonctionne très bien, les données de retour avec les noms de colonnes par défaut utilisés dans le DB:
"product": {
"created_at": "2010-10-08T17:24:27Z",
"id": 24,
"product_date": "2010-08-08",
"product_name": "Product One",
"updated_at": "2010-10-08T17:36:00Z"
}
Ce que je besoin est quelque chose comme:
"product": {
"created_at": "2010-10-08T17:24:27Z",
"id": 24,
"start": "2010-08-08",
"title": "Product One",
"updated_at": "2010-10-08T17:36:00Z"
}
En d'autres termes, en changeant product_date à démarrer et nom_produit à titre, mais uniquement dans la sortie JSON.
Cela semble être un problème facile à résoudre mais je ne suis pas sûr de savoir comment l'exprimer en syntaxe Ruby/Rails, donc j'apprécierais vraiment toute aide. Je ne peux pas renommer les colonnes de la base de données.
Avez-vous besoin de le remplacer uniquement pour une action spécifique, ou chaque fois qu'un produit est sérialisé à json? – jason
À chaque fois. Je veux utiliser un plugin jQuery qui nécessite des noms de champs spécifiques pour les données JSON qui lui sont passées. Je voudrais pouvoir utiliser la même action pour rendre XML (avec les noms de champs par défaut), et JSON avec les noms de champs modifiés. Aurais-je peut-être créer une nouvelle variable pour les données JSON, ou faire quelque chose dans l'instruction de rendu? – pthesis
Si quelqu'un d'autre est en mesure d'offrir un aperçu qui serait vraiment apprécié! – pthesis