2013-11-15 52 views
0

我想在Note保存其Employee是一個'筆記」的Rails讓訪問當前用戶

,最後的編輯在視圖中,我能夠訪問當前的員工是這樣的:

<h4><%= current_user.employee.id%></h4> 

但是,在模型中,我不能使用current_user.employee.id

def self.current 
    Thread.current[:user] 
end 
def self.current=(user) 
    Thread.current[:user] = user 
end 

在註釋模型和本:

所以,我在用戶模式嘗試這種

before_create :record_update 
before_update :record_update 

protected 
def record_update 
    self.lasteditor_id = User.current.employee.id unless User.current.employee.id.nil? 
end 

什麼,我得到的是在Users表中的最後User

感謝您的幫助!

+0

我創建了一段時間後創建一個gem,記錄任何ActiveRecord對象的更新和創建者 - https://github.com/house9/clerk - 不確定它對你的情況是否有用? – house9

回答

1

current_user從會話中獲取已登錄的用戶信息。您無法從模型訪問會話變量。如果您想更新的最後一個員工誰看到它的注意模型,做在你的控制器(你的註釋,或任何其他行動的最有可能的表演動作,你覺得這是正確的)

def show 
    @note = Note.find(params[:id]) 
    @note.update_atribute(:last_viewed_by, current_user.id) 
end 

你的代碼可能會與以上不同。但這是想法

+0

這很棒!謝謝 – Reddirt

相關問題