标题已经不知道怎么写了,我想要的是进行一个动作后,记录下 log. 并且同时记录下是谁进行了这个动作 ( 使用 devise 认证 )
遇到的问题是在 model 里面不能调用 current_user
, 所以无法记录下是谁进行的操作。按照我的想法。这种功能应该是实现在 observer 里面的,但是在 observer 中如何才能确定现在登陆的用户呢..?
用代码来说下这个问题是这样的:
class ProjectObserver < ActiveRecord::Observer
def after_save(proj)
Event.create(
:project => self,
:type => xxx,
:author => current_user #怎么获得这个用户, devise 的 current_user helper 用不了
)
end
end
如果有另外的方法解决这个问题也行...我是觉得这个逻辑不应该放进 controller 里 ( controller 里面可以用 current_user) , 所以把自己卡住了。