Sapete come alcuni bug tracker (e altri software) consentono di aggiungere campi personalizzati?Rails - Aggiunta di campi personalizzati in fase di runtime in ActiveRecord
In genere questo è fatto con una struttura dati che sembra qualcosa di simile:
Items
----------
ID | NAME | ITEM_TYPE_ID
FieldDefinitions
---------------------------------------
ID | ITEM_TYPE_ID | FIELD_NAME | FIELD_TYPE
FieldValues
---------------------------------------
ID | FIELD_ID | ITEM_ID | VALUE
Sto cercando di capire il modo migliore per affrontare questo progetto in Rails. Ci saranno molti modelli che voglio permettere di estendere le proprietà semplici.
Quando si recupera uno Item
Mi piacerebbe che includesse un hash dei valori del campo di addizione che sono stati definiti per quel modello.
L'uso di iniettare sarebbe probabilmente una forma migliore. Come self.field_values.inject ({}) {| memo, fv | memo [fv.field_definition] = fv} o simile. –
Questo è quello che stavo pensando di usare ... mi chiedevo se c'era un modo più "rubino" per farlo ... –
Il solito modo probabilmente non usare affatto un hash e basta usare l'associazione generata metodi, ma immagino ci sia una ragione per cui eri particolarmente ricercato un hash ...? –