我有一个课程'课程'它有一个子类'主题'。 课程有很多科目。 我希望使用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科目的课程对象。 我做错了什么?
我想要完成的任务即使主题被添加到课程中,我也希望将其视为课程的变化,并且应该为其创建一个版本,当我去任何以前的版本,我应该能够看到当时所有课程。
答案 0 :(得分:0)
您可以使用paper_trail
的{{1}}属性来获取上次更改课程对象的时刻,并且您可以选择created_at
属性小于paper_trail的主题对象,从而确保您获得仅在该paper_trail版本之前创建的主题数量(例如,如果您在创建课程时获得paper_trail版本,则两个主题created_at
属性将大于版本日期,这意味着它将返回0个主题)。