Let Quote
hanno attributi [price, description]
Rails: Copia attributi da un oggetto ad un altro utilizzando gli "attributi" metodo
Let Invoice
hanno attributi [price, description, priority]
Facciamo invoice
un oggetto dal Modello Invoice
con gli attributi {price: 10, description: 'lamp', priority: 10}
invoice = {price: 10, description: 'lamp', priority: 10}
Diciamo che voglio copiare gli attributi invoice
in un nuovo quote
.
quote = Quote.new(invoice.attributes)
Questo solleva un errore che priority
non existe nel modello di Quote
.
Come si copiano gli attributi invoice
in un nuovo quote
ma solo gli attributi che un quote
può accettare?
Non tutti 'attribute_names' dovrebbero essere copiati però. 'id',' updated_at' e 'created_at' dovrebbero probabilmente essere' nil' in istanziazione. – Mischa
Passando solo l'array restituisce {}, utilizzare sotto uno! Quote.new (invoice.attributes.slice (* Quote.attribute_names)) – Ajay
@ajay Ciao, la tua risposta è davvero utile. Ho ottenuto lo stesso scenario per l'aggiunta di più attributi. quindi ho ricevuto un errore "attributi del metodo non definito". Come posso ripararlo? Grazie – Learner