rails model before_update无法访问current_user

时间:2013-03-28 17:34:55

标签: ruby-on-rails

我想使用当前用户的employee_id更新表Tasks中的inspector_id。但是,该模型不允许我访问current_user。

这是我试图在任务模型中使用的代码。

before_update :update_inspector

protected
 def update_inspector
  self.inspector_id = current_user.employee
 end

我明白了:

NameError (undefined local variable or method `current_user' 

2 个答案:

答案 0 :(得分:1)

通常,current_user在应用程序控制器中定义。这意味着该方法仅在控制器内部可用,而不是在模型中。您看到的错误与该事态一致。如果您需要Task模型中的current_user,则必须在某处传递它。

答案 1 :(得分:0)

您始终可以访问在模型内部构建current_user变量的会话信息。