Rails可以访问当前用户

时间:2013-11-15 18:46:24

标签: ruby-on-rails

我正在尝试保存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

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

current_user从会话中获取登录的用户信息。您无法从模型访问会话变量。如果您想使用查看它的最后一位员工更新Note模型,请在您的控制器中执行此操作(最有可能显示您的注释的操作或您认为正确的任何其他操作)

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

您的代码可能与上面的内容有所不同。但这就是想法