Qual è la migliore pratica per aggiungere molti attributi a un modello Rails?

2

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
    
posta Kyle Macey 26.01.2015 - 20:19
fonte

1 risposta

1

Se utilizzi Postgres, HStore o JSON possono memorizzare i valori chiave abbastanza facilmente. È ancora possibile utilizzare gli indici per interrogare il DB. Se ci fossero 50 attributi è ciò che userò. Molto superiore ai campi serializzati.

    
risposta data 04.01.2016 - 21:32
fonte

Leggi altre domande sui tag