Let modelowych Quote
mieć atrybuty [price, description]
szyn: Kopiowanie atrybutów z obiektu do drugiego za pomocą „atrybuty” metoda
Let modelu Invoice
mieć atrybuty [price, description, priority]
Niech invoice
obiekt z modelu Invoice
z atrybutami {price: 10, description: 'lamp', priority: 10}
invoice = {price: 10, description: 'lamp', priority: 10}
Załóżmy, że chcę skopiować atrybuty invoice
do nowego quote
.
quote = Quote.new(invoice.attributes)
Rodzi to błąd, który priority
nie Existe w modelu Quote
.
Jak skopiować atrybuty invoice
do nowego quote
, ale tylko te atrybuty, które może zaakceptować quote
?
Nie wszyscy 'attribute_names' powinny być kopiowane chociaż. 'id',' updated_at' i 'created_at' powinny prawdopodobnie być' nil' w instancji. – Mischa
Przekazanie tylko tablicy zwraca {}, użyj poniżej! Quote.new (invoice.attributes.slice (* Quote.attribute_names)) – Ajay
@ajay Witam, Twoja odpowiedź jest bardzo pomocna. Mam taki sam scenariusz dla dodawania wielu atrybutów. więc mam błąd 'niezdefiniowane atrybuty metody'. Jak mogę to naprawić? Dzięki – Learner