使用纸质记录查找更新了模型当前版本的用户



我正在做的项目是使用 Paper Trail gem 来存储某些模型的以前版本。

我使用它在模型视图页面上显示审核历史记录页面,该页面显示模型更新之间更改的内容以及更改者。这对于以前的版本工作正常,但我还想显示谁更新了模型的当前版本。

是否有 whodunnit 命令的版本来查找谁将模型更新到其当前状态?

我认为 Paper Trail 必须将其存储在当前版本的某个地方,否则它不知道何时在下次更新时填充 model.versions 数组。

我已经搜索了 堆栈溢出,甚至开始查看宝石代码,但我无法弄清楚它如何存储current_version的人。

//如果此小部件(对象)是当前的实时小部件(对象),则返回 true;如果它来自以前的版本,则返回 false。

widget.live?
返回

此小部件的还原版本,如果它是实时的,则返回 nil。您可以自定义方法的名称。

widget.version

如果对象是活动的,则版本为零

您可以将最新版本获取

widget.versions.last.whodunnit
class ApplicationController < ActionController::Base
  def user_for_paper_trail
    user_signed_in? ? current_user : 'Guest'
  end
  def info_for_paper_trail
    { user_id: current_user.id } if user_signed_in?
  end
end
# config/initializers/paper_trail.rb
class Version < ActiveRecord::Base
  attr_accessible :user_id
end

最新更新