0
我正在使用Paper Tram gem來創建我的模型之一版本。Rails Paper Trail版本號
它的工作原理非常好,當它在日誌版本上進行改進以便跟蹤已批准產品的更新時,這部分工作正常。
我還需要做的是捕獲批准的版本。自然,在批准時,我的批准字段設置爲false,因此它不會捕獲版本。有誰知道我可以如何修改下面的產品模型中的線來實現這一目標?
has_paper_trail :on => [:update,:approve], :if => Proc.new { |p| p.approved == true }
編輯:它似乎papertrail不自定義控制器操作。任何人都可以驗證嗎?
我知道這可能不是最佳做法,但我的批准是在我的控制器內用'@product.approved = true @ product.save'處理的。然而,我是否認爲'@ product.save'應該開始更新? – Raoot
邑,它應該激發 - 我猜'label_approved'和'p.approved'在你的代碼中實際上是一樣的嗎?否則,這可能無法按預期工作 – krichard
啊,是的同一件事!現在編輯上面。批准操作確實正確地更新了批准的字段,但我猜測has_paper_trail正在處理before_update而不是之後,這對於在更改前記錄版本是有意義的。 – Raoot