1

我正在工作的项目是使用 Paper Trail gem 来存储某些模型的早期版本。

我正在使用它在模型视图页面上显示审核历史记录页面,该页面显示模型更新之间的更改以及更改者。这在以前的版本中运行良好,但我还想显示谁更新了模型的当前版本。

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

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

我已经在 Stack Overflow 上进行了搜索,甚至开始查看 gems 代码,但我无法弄清楚它是如何为 current_version 存储 whodunnit 的。

4

1 回答 1

0

//如果此小部件(对象)是当前的,则返回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
于 2015-09-23T09:17:25.913 回答