Klucze dynamiczne JBuilder dla atrybutów modelu
Próbuję zbudować plik JSON, aby uzyskać dostęp do odmiany produktu za pomocą kodu odmiany. W idealnej sytuacji mógłbym nazwać variations.abcdefgh zasadniczo prosząc o zdefiniowanie takiej struktury:
{
"variations":{
"abcdefgh":{
"available":true,
"price":"12.00"
},
"ijklmnop":{
"available":false,
"price":"25.00"
}
}
}
Robi coś w produktach / show.json.jbuilder
json.variations @product.variations
daje mi formatowanie jako takie:
{
"variations":[
{
"available":true,
"price":"12.00",
"product_code":"abcdefgh"
},
{
"available":true,
"price":"25.00",
"product_code":"ijklmnop"
}
]
}
może mój JavaScript może być lepszy, ale chcę mieć coś bardziej dostępnego na podstawie kodu produktu. Najbliższy dostałem
@product.variations.each do |variation|
json.set! variation.product_code, variation
end
ale nie znalazłem jeszcze rozwiązania, które umieści te poprawnie sformatowane obiekty jako dzieci w atrybucie odmian. Ktoś kiedyś wpadł na coś podobnego?