用于访问进行更改的用户的良好模式

时间:2015-10-26 10:41:38

标签: ruby-on-rails rails-activerecord actionmailer grails-controller

在我的应用程序中,有几个理由知道谁做了更改,这可以产生通知。

例如,如果我将某个任务分配给某人,那么该模型的after_update可以产生一个通知,但如果我给自己分配一些东西,我不希望它生成一个。

为此,我目前正在使用User.current,它执行线程查找Thread.current[:current_user]。另一种方法是告诉模型谁正在保存它们,也可能有其他替代方案。

您在这种情况下成功实施的方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用paper_trail gem。您可以在哪里查看模型的所有版本:

@your_model.versions # => []
@your_model.whodunnit # => will be filled your current_user of an action

或者在执行保存之前设置用户:

PaperTrail.whodunnit = 'Manager'

doing it有很多选项。