我有一个有趣的谜题,我一直在努力寻找更优雅的解决方案。
我有2个模型。 Surveys
并且Questions
通过关系在 has_many 中连接QuestionLogs
。has_many :questions, :through => :question_logs
这很好用,我的问题是我需要变体调查。例如。我可能有 3 份针对不同地区的调查,比如芝加哥、洛杉矶和奥斯汀。他们共享 90% 的共同问题,但可能会替换一两个问题。
目前,我从一项调查开始(具有由 region_id 限定的唯一 sid),调查 A 完成后,我创建了一个重复的调查 B(相同的 sid,不同的 region_id),它为这些完全相同的问题创建了 10 个新的 QuestionLogs ,然后我会根据地区替换 1 或 2 个问题。(例如,如果我有一个包含 2 个变体、10 个问题的调查,我最终会得到 30 个 QuestionLogs,这些问题几乎相同)。
这工作正常。我的问题是,是否有另一种方法可以避免重复 QuestionLogs。例如,一种处理模型及其依赖项的变化、记录差异而不是简单重复的方法。
仅供参考,每个调查恰好有 10 个问题,这些问题是在调查之前单独创建的,并且模型非常复杂,例如。它有答案等。
任何建议或方向将不胜感激,谢谢!