2015-04-12 70 views
1

我工作的項目使用Paper Trail gem來存儲某些模型的以前版本。使用Paper Trail查找更新模型當前版本的用戶

我正在使用它在模型視圖頁面上顯示審計歷史記錄頁面,該頁面顯示模型更新和誰更改了哪些內容。這對於以前的版本來說工作得很好,但我也想顯示誰更新了當前版本的模型。

是否有一個版本的whodunnit命令來查找誰將模型更新爲當前狀態?

我覺得Paper Trail必須將它存儲在當前版本的某個位置,否則在下一次更新時將不知道它何時填充model.versions數組。

我已經在堆棧溢出搜索,甚至開始尋找通過寶石代碼,但我不知道它如何存儲爲current_version whodunnit。

回答

0

//如果這個小部件(對象)是當前活動的,則返回true;如果它來自以前的版本,則爲false。

widget.live? 

//返回此小部件的物化版本,或者如果它是活的,則返回零。 您可以自定義方法的名稱。

widget.version 

如果對象是活的那麼的版本是零

您可以獲取最新版本爲

widget.versions.last.whodunnit 

class ApplicationController < ActionController::Base 
    def user_for_paper_trail 
    user_signed_in? ? current_user : 'Guest' 
    end 

    def info_for_paper_trail 
    { user_id: current_user.id } if user_signed_in? 
    end 
end 

# config/initializers/paper_trail.rb 
class Version < ActiveRecord::Base 
    attr_accessible :user_id 
end