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.rb にあるため、User.current.employee.id にアクセスできます。
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