Claves dinámicas de JBuilder para atributos de modelo

Estoy tratando de construir un archivo JSON para acceder a la variación de un producto a través de un código de variación. Idealmente, podría llamar variaciones.abcdefgh esencialmente pidiendo definir una estructura como esta:

{
   "variations":{
      "abcdefgh":{
         "available":true,
         "price":"12.00"
      },
      "ijklmnop":{
         "available":false,
         "price":"25.00"
      }
   }
}

Hacer algo en products / show.json.jbuilder como

json.variations @product.variations

Me da el formato como tal:

{
   "variations":[
      {
         "available":true,
         "price":"12.00",
         "product_code":"abcdefgh"
      },
      {
         "available":true,
         "price":"25.00",
         "product_code":"ijklmnop"
      }
   ]
}

tal vez mi JavaScript podría ser mejor, pero quiero algo un poco más accesible basado en el product_code. Lo más cerca que he estado ha sido

@product.variations.each do |variation|
   json.set! variation.product_code, variation
end

pero aún no he encontrado una solución que ponga estos objetos correctamente formateados como hijos en un atributo de variaciones. ¿Alguien se ha encontrado con algo similar antes?

Respuestas a la pregunta(1)

Su respuesta a la pregunta