Correlative name of variables

FYI, the top level attribute space, for the model or any entity, is a shared space.
This means that extensions must use unique top level dictionary names to prevent clashing between extensions.
It is common for an extension to prefix it’s name with the author’s namespace + “_” + extension submodule.
This is often used for the extension’s options key anyway.

I keep seeing this in your snippet:

  @Data_dict .set_attribute('Detail','detailedData',@a)

There should not be a space between the object reference and the dot method call.

So you want to have a data class.

Ruby has two choices:

… or use a custom solution: