current_user在观察者中可用

时间:2013-12-17 09:41:08

标签: ruby-on-rails ruby-on-rails-3 observers

好的,所以我知道之前已经提到了这一点,并且我意识到这在纯粹主义者看来打破了MVC模型。但是,我真的认为诸如current_user或current_tenant之类的东西应该在观察者中可用。

我的具体情况是,在对我的模型的一个子集(大约六个)进行了操作后,我希望将某些内容写入审计日志,其中包括进行更改的用户和进行更改的租户同样。

执行此操作的第一种方法是为执行该功能的每个控制器方法添加一行。要使此DRYer实际活动在应用程序控制器或auditlog模型中执行,并从控制器调用简单的一行语句。然而,这仍然意味着添加一行,这不是很好,如果在观察者中完成它将会更加优雅。

然而,由于观察者无法知道current_user是什么,这是不可能的。我已经看过一些使用Thread的工作,但这对我来说看起来并不安全。

现在,如果有人有更优雅的解决方案,我很乐意听到它。否则,这是我的情况,我们应该访问观察者中的一些控制器方法。在将这个问题交给rails core开发团队之前,我想了解一下这种感觉。

0 个答案:

没有答案