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?

questionAnswers(1)

yourAnswerToTheQuestion