我正在做的项目是使用 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