如何将对象及其关联保存为不可变模板?

问题描述

我不知道如何以简洁的方式进行搜索查询。我正在使用RoR 5和Postgresql

情况是这样的: 我有一个制作医疗Appointment并服用医疗Exam的软件(例如验血)。在每个Appointment中,患者可以选择许多ExamGroup,它们是几个Exam的容器。您只能为ExamGroup个约会,而不能单独为Exam个约会。

用户填写Appointment表单后,管理员可以看到约会请求并生成空白Report,该空白Exam代表具有每个Exam的所有参数的表单结果。因此,FormField有许多FormField,每个FormValues有许多FormField,它们代表了特定ReportReport的答案(这些表格是动态的,您可以为每个考试创建不同类型的字段。)

问题是我需要创建包含AppointmentFormValue的医学Report,并且永远不要更改其字段。因此,例如,在某个时间点,我为具有3个ExamGroup的{​​{1}}和每个Exam有2个Exam的{​​{1}}生成FormField。在生成Report时,将为每个FormValue生成空白FormField,并且它们引用它们。因此,现在我有一张表格,显示这些考试及其参数的结果。假设我要换一门考试。我向它添加一个新参数,然后Report将引用一个与原始Exam不同的Report,因此它会显示空白字段或验证失败

我需要Reports始终使用相同的“模板”。生成报告后,报告中将包含X个字段,并且它们永远无法更改,就像报告的“模板”现在是快照一样。如果我编辑报告,则它们的值可以更改,但不能更改。有什么好的解决办法?

我在考虑版本控制系统,但是对于我想要的版本来说可能太复杂了。我的逻辑是根据某些Report及其ExamGroup的版本生成Exam,如果我更改了ExamExamGroup,新版本将被生成,并将用作未来Report的模板,依此类推。我也读过有关序列化的信息,但是我相信如果序列化一个对象,就无法更改其值,但是我希望能够为每个检查字段(而不是其字段)编辑值。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)