我想实现克隆功能,用户可以将现有记录克隆到新记录中。 我想要克隆的模型是OpdRecord,我也将模型Medication嵌套在OpdRecord表单中,因此两者都是在提交表单后创建的。 当我使用以下代码克隆时
opd_record = OpdRecord.find_by(:id => params[:opd_record_id])
@opdrecord=opd_record.dup
嵌套的属性没有得到克隆。 当我保存
@opdrecord = OpdRecord.new(record_params)
@opdrecord.save
下面的reord params
def record_params
params.require(:opdrecord).permit!
end
我收到以下错误
NoMethodError (undefined method `assign_attributes' for nil:NilClass):
我如何设法保存嵌套属性
答案 0 :(得分:0)
使用http://www.agner.org/optimize/instruction_tables.pdf gem OR deep_cloneable gem
使用Deep_Cloneable就像:
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