Quindi sto costruendo un gioiello di wrapper API che funzioni con il modello di prodotto di Spree. L'API fornisce un'ampia personalizzazione dei dati che gli vengono inviati. Vorrei che un utente della gemma fosse in grado di approfittare di tutte le personalizzazioni qualora lo desiderassero. Mi sembra che dovrei creare una migrazione che aggiunge circa 50 nuovi attributi al modello di prodotto per consentire all'utente di personalizzare questi attributi per un prodotto.
Mi sembra terribilmente invasivo aggiungere 50 attributi a un modello in cui solo pochi possono essere usati da un dato utente (sarebbe un caso limite per qualcuno di usare la maggior parte / tutti). Qual è la procedura migliore per offrire questi attributi all'utente senza intorbidire il modello principale.
Il mio pensiero potrebbe essere stato quello di creare un altro modello che appartiene al Prodotto e contiene gli attributi API, ma sembra che possa creare un sovraccarico tecnico.
Ad esempio:
class Spree::Product
has_one :spree_product_api_attribute_set
delegate :attr1, :attr2, :attr3..., to: :spree_product_api_attribute_set
end