¿Sabe cómo algunos rastreadores de errores (y otro software) le permiten agregar campos personalizados?Rieles: adición de campos personalizados en el tiempo de ejecución en ActiveRecord
Normalmente esto se hace con una estructura de datos que se ve algo como esto:
Items
----------
ID | NAME | ITEM_TYPE_ID
FieldDefinitions
---------------------------------------
ID | ITEM_TYPE_ID | FIELD_NAME | FIELD_TYPE
FieldValues
---------------------------------------
ID | FIELD_ID | ITEM_ID | VALUE
Estoy tratando de averiguar la mejor manera de acercarse a este diseño en Rails. Habrá muchos modelos que quiero permitir extender propiedades simples.
Cuando recupere un Item
me gustaría que incluya un hash de los valores de campo de adición que se han definido para ese modelo.
El uso de inyectar probablemente sería una mejor forma. Como self.field_values.inject ({}) {| memo, fv | memo [fv.field_definition] = fv} o similar. –
Esto es lo que estaba pensando que usaría ... me preguntaba si había una forma más de "ruby" de hacer esto ... –
La forma habitual probablemente no sea utilizar un hash en absoluto y simplemente usar la asociación generada métodos, pero supongo que hay una razón por la que se quería especialmente un hash ...? –