2015-01-16 34 views
1

我有一個課程'課程',它有一個子課程'主題'。 一門課程有很多科目。 我正在尋找使用paper_trail - 4.0.0.beta1版本來跟蹤課程/主題的任何更改。PaperTrail用法 - 版本控制 - 審計

課程類定義:

Class Course 
has_many :subjects 
has_paper_trail 

end 

主題類定義:

Class Subject 
    belongs_to :course 
    has_paper_trail 
    end 

我遵循以下步驟:

  1. 通過名稱創建一個橫列 '數學'=>這使進入版本 表。
  2. 創建了一個名爲'代數'的主題,並分配到 當然。
  3. 創建了一個名爲'科學'的科目,並分配到 當然。

現在,當我看恢復過程對象到步驟1,作爲每文件線索,我以下步驟:

old_course = course.previous_version.reify(的has_many:真)

但是這樣做是讓我回到最新的課程對象,它有兩個主題。我期待有0科目的課程對象。 我在做什麼錯?

我期待完成的任務即使某課程被添加到課程中,我也會將其當作課程的改變,並且應該爲它創建一個版本,當我轉到任何以前的版本時,我應該能夠看到當時所有的課程。

回答

0

您可以使用paper_trailcreated_at屬性來獲取時刻,課程對象最後改變了,你可以選擇有created_at屬性比paper_trail的對象小的對象,從而保證你得到受試者的數量僅在創建paper_trail版本之前創建(例如,如果在創建課程時獲得paper_trail版本,則兩個主題created_at屬性將大於版本日期,這意味着它將返回0個主題)。