Devo usare ATRT_ACCESSOR?
-
28-10-2019 - |
Domanda
Ho intenzione di usare validazioni condizionali sulla falsariga di ciò che è descritto in questo ferroviere Nel Railscast, che è piuttosto vecchio, viene utilizzato ATTR_ACCHESOR, (salta alla parte successiva del video per vedere il codice). Sono relativamente nuovo nella programmazione di Rails e volevo leggere su ciò che fa Attr_Accessor. Questo inviare Chiede di usarlo e la risposta più votata dice che non dovrebbero quasi mai essere usati nei binari.
È necessario/Dovrei usare ATTR_ACCHESOR come è fatto nel RailScast? O questi metodi sono creati automaticamente? C'è qualche pericolo nell'uso di ATTR_ACCHESOR in questo caso?
Soluzione
Usando attr_accessor
Non ha nulla a che fare con il record attivo. Discuto come funziona questo post, questo è anche correlato ad AR.
Ora, cosa AR fa DO, è che crea automaticamente i metodi "accessori" (ad es. x/x=
) Basato sul modello di database. Questi creati automaticamente metodi sono davvero solo stub che utilizza per proxy nel funzionamento dell'AR interno.
Il punto è, attr_accessor
(automaticamente) Avvolge un semplice accesso variabile di istanza, mentre AR (automaticamente) i metodi creati avvolgono la magia AR. Le due operazioni si escludono a vicenda. Perché attr_accessor
non "collega a" la magia AR, tutto ciò che può essere usato per creare campi transitori che non sono persistiti: AR non conosce o si preoccupa delle variabili di istanza.
Il "pericolo" deriva dal forse complicando gli oggetti del modello con informazioni transitorie - se è transitorio, Perché dovrebbe far parte di un oggetto modello? Questa è l'argomento la risposta più votata nella domanda collegata.
Codice felice.
Tuttavia, non so cosa succederebbe se si usa attr_accessor
Per lo stesso campo di quello che sembra essere nel modello AR ... almeno la confusione.