使用Paper Trail查找更新当前版本模型的用户

时间:2015-04-12 23:12:02

标签: ruby-on-rails-3 paper-trail-gem

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

我使用它在模型视图页面上显示审核历史记录页面,其中显示了模型更新与更改模型更新之间的更改。这适用于以前的版本,但我还想显示谁更新了当前版本的模型。

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

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

我已经在Stack Overflow上搜索过,甚至开始查看gems代码,但我无法解决它如何为current_version存储whodunnit。

1 个答案:

答案 0 :(得分:0)

//如果此窗口小部件(对象)是当前的活动窗口,则返回true;如果是以前的版本,则为false。

widget.live?

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

widget.version

如果对象是实时的,则版本为nil

您可以将最后一个版本提取为

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