我正在使用的项目是使用Paper Trail gem来存储某些模型的先前版本。
我使用它在模型视图页面上显示审核历史记录页面,其中显示了模型更新与更改模型更新之间的更改。这适用于以前的版本,但我还想显示谁更新了当前版本的模型。
是否有一个版本的whodunnit命令来查找谁将模型更新到当前状态?
我认为Paper Trail必须将它存储在当前版本的某个地方,否则它不会知道它何时在下次更新时填充model.versions数组。
我已经在Stack Overflow上搜索过,甚至开始查看gems代码,但我无法解决它如何为current_version存储whodunnit。
答案 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