我在 task.rb 中有以下代码:
before_update :update_inspector
protected
def update_inspector
self.inspector_id = User.current.employee.id
end
它工作正常。
但是,我希望能够使用 REST 更新任务。因此,使用 REST 时不会有当前用户。
所以,我尝试了这个:
before_update :update_inspector, :unless => User.current.employee.id.empty
protected
def update_inspector
self.inspector_id = User.current.employee.id
end
但是,它不起作用。
我也试过:
:unless => User.current.employee.id = nil
谢谢您的帮助 !!!
更新1
我也试过这个:
before_update :update_inspector
protected
def update_inspector
self.inspector_id = User.current.employee.id unless User.current.employee.id.nil?
end
更新2
我可以访问 User.current.employee.id,因为它在我的 user.rb 中:
def self.current
Thread.current[:user]
end
def self.current=(user)
Thread.current[:user] = user
end
更新3
我的最后一次尝试给了我这个:
> undefined method `employee' for nil:NilClass
app/models/task.rb, line 30
---------------------------
``` ruby
25
26 before_update :update_inspector
27
28 protected
29 def update_inspector
> 30 self.inspector_id = User.current.employee.id unless User.current.employee.id.nil?
31
32 end
33
34 end