我有一个类“课程”,它有一个子类“主题”。 一门课程有很多科目。我希望使用 paper_trail - 4.0.0.beta1 版本来跟踪课程/主题的任何更改。
课程类别定义:
Class Course
has_many :subjects
has_paper_trail
end
学科类定义:
Class Subject
belongs_to :course
has_paper_trail
end
我按照以下步骤操作:
- 创建了一个名为“数学”的课程 => 这进入了版本表。
- 创建一个名为“代数”的主题并分配给课程。
- 创建一个名为“科学”的主题并分配给课程。
现在,当我希望将课程对象恢复到第 1 步时,根据论文记录,我正在执行以下步骤:
old_course = course.previous_version.reify(has_many: true)
但这样做会让我返回包含两个主题的最新课程对象。我期待一个有 0 个科目的课程对象。我究竟做错了什么?
我想要完成的是,即使将主题添加到课程中,我也想将其视为课程的更改,并且应该为它创建一个版本,当我转到任何以前的版本时,我应该能够看到该课程当时的所有科目。