Skip to content

Latest commit

 

History

History
72 lines (46 loc) · 2.91 KB

README.md

File metadata and controls

72 lines (46 loc) · 2.91 KB

Rails Admin History Rollback

Gem Version Code Climate

RailsAdmin extension for enabling users to easily visualise and revert their history audit created by the PaperTrail gem.

Installation

To enable rails_admin_history_rollback, add the following to your Gemfile ensuring it is added after rails_admin:

gem 'rails_admin'
gem 'rails_admin_history_rollback'

It should go without saying that this plugin also requires the paper_trail gem.

E.g. gem 'paper_trail'

Configuration

Simply enable paper_trail on your model --with-changes --with-associations and set up as usual by following the paper_trail instructions.

rails generate paper_trail:install --with-changes --with-associations

In the rails_admin.rb initializer, uncomment the following lines to enable auditing:

history_index
history_show

Notes

You may also need to require "paper_trail" in application.rb

As pointed out in issue #8, paper_trail master branch and release v5.0.0 (when available) causes session issues. Login is reset by devise; paper_trail tries to access to the current_user variable before devise (airblade/paper_trail#556).

The fix is to manually add set_paper_trail_whodunnit before_action as advised here: (https://github.com/airblade/paper_trail#finding-out-who-was-responsible-for-a-change)

Paper trial changeset returns a nil value, and therefor the popup widget will be black. To fix this add

config.active_record.use_yaml_unsafe_load = true

in config/application.rb as discussed in here: (https://stackoverflow.com/questions/72970170/upgrading-to-rails-6-1-6-1-causes-psychdisallowedclass-tried-to-load-unspecif)

# app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  [...]
  before_action :set_paper_trail_whodunnit
  [...]
end

Screenshots

History view

Modal view

About Jemcode

Jemcode

This repository is maintained and funded by Jemcode Limited. We are available for hire.