我正在尝试保存Note
Employee
是“注意”的最后一位编辑
在视图中,我可以像这样访问当前员工:
<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
这在Note模型中:
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
我得到的是User
表格中的最后一个Users
。
感谢您的帮助!
答案 0 :(得分:1)
current_user
从会话中获取登录的用户信息。您无法从模型访问会话变量。如果您想使用查看它的最后一位员工更新Note模型,请在您的控制器中执行此操作(最有可能显示您的注释的操作或您认为正确的任何其他操作)
def show
@note = Note.find(params[:id])
@note.update_atribute(:last_viewed_by, current_user.id)
end
您的代码可能与上面的内容有所不同。但这就是想法