2016-05-06 26 views
0

Ich möchte ein Klon-Feature implementieren, mit dem ein Benutzer vorhandene Datensätze in einen neuen Datensatz klonen kann. Das Modell, das ich klonen möchte, ist OpdRecord, auch ich habe Modell Medication im OpdRecord-Formular geschachtelt, so dass beide nach dem Absenden des Formulars erstellt werden. Wenn ich den folgenden Code-Klon mitNoMethodError (undefinierte Methode `assign_attributes 'für nil: NilClass)

opd_record = OpdRecord.find_by(:id => params[:opd_record_id]) 
@opdrecord=opd_record.dup 

die verschachtelten attribites sind nicht geklont zu werden. und wenn ich

@opdrecord = OpdRecord.new(record_params) 
@opdrecord.save 

REORD params unter

def record_params 
    params.require(:opdrecord).permit! 
    end 

speichern erhalte ich die folgenden Fehler

NoMethodError (undefined method `assign_attributes' for nil:NilClass): 

Wie kann ich die verschachtelten Attribute als auch

Antwort

0

Verwendung speichern verwalten deep_cloneable gem OR amoeba gem

Mit Deep_Cloneable Sie es mögen:

opd_record = OpdRecord.find_by(:id => params[:opd_record_id]) 
@opd_record = opd_record.deep_clone :include => [:medication ] # change it as per your model relations 
+0

ist diese Unterstützung mongoid embededd Attribute? – Supertracer

+0

Ich glaube schon ... –

+1

http://stackoverflow.com/questions/8793647/deep-clone-document-with-embedded-associations –

Verwandte Themen