J'ai une étrange situation de modèle de données pour commencer, alors peut-être que toute mon approche est fausse. Voici ce que je fais:RoR imbriqué: include pour inclure des sous-ressources dans to_xml/to_json
J'ai une classe appelée Bird et une classe simple appelée Couleur. D'un point de vue conceptuel, chaque oiseau a deux associations à la couleur, une pour les couleurs masculines et une pour les couleurs féminines. La façon dont j'ai manipulé ceci est d'utiliser un modèle de joint appelé BirdColoration qui appartient à un oiseau et une couleur et a un champ booléen supplémentaire pour dire si la coloration est pour mâle ou femelle. Donc, chaque oiseau a réellement une relation to_many à BirdColoration, ainsi qu'un to_many à Color: à travers BirdColoration. Si cela semble raisonnable, continuez à lire. Sinon, arrêtez-vous et dites-moi pourquoi c'est faux!
Je dois être en mesure de vider la table des oiseaux comme json. Auparavant, quand chaque oiseau avait seulement une association à beaucoup de couleurs, je pouvais simplement utiliser: inclure pour inclure les couleurs de chaque oiseau dans la décharge json. Maintenant, j'inclus les BirdColorations dans la décharge, mais j'ai encore besoin d'obtenir les modèles de couleurs eux-mêmes. Je pourrais inclure séparément les couleurs et les colorations de chaque oiseau, puis les mettre en correspondance tout en analysant, mais je préfèrerais simplement inclure la couleur de chaque couleur directement. Quelque chose comme
format.json { render :json => @birds.to_json(:include => [{:bird_colorations => :color}, :seasons, :habitats, :image_holders]) }
Ce qui précède ne fonctionne pas, cependant. Je pense que cela devrait être possible. Quelqu'un peut-il me diriger dans la bonne direction pour savoir comment gérer cela? Pour l'instant, je vais juste inclure la couleur et les colorations de chaque oiseau séparément et les faire correspondre dans l'analyse. Au moins, je sais que ça va marcher.
Merci!
Je voudrais voter plus pour ça !! Merci! – brutuscat
moi aussi @brutuscat. Sauvé mon bacon! – Rots
Le code dans votre question semble tellement plus propre, c'est tellement contre-intuitif. Surtout que si vous n'aviez pas la couleur d'imbrication bird_colorations, l'exemple de questions fonctionnerait. Merci d'avoir posté votre solution. Les rails devraient fixer ceci ... – thatmiddleway