Good for auditing or versioning for Active Admin (using PaperTrail)
Add this line to your application's Gemfile:
gem 'active_admin_versioning'And then execute:
$ bundle
In some cases you may need to display some extra or formatted text in whodunnit. For example whodunit is an ID of your user. And you want to display not just a number, but his E-mail.
Create configuration 'config/initializers/active_admin_versionings.rb'
ActiveAdminVersioning.configure do |config|
config.whodunnit_attribute_name = :display_whodunnit
config.display_version_diff = false # default false
config.display_version_link = true # default true
end- When
display_version_linkis true, it s activate active admin Versions pages - When
display_version_diffis true, it s add a panel to show pages to see all version diff
In you model:
has_paper_trail class_name: 'MyPaperTrail'class MyPaperTrail < PaperTrail::Version
def display_whodunnit
AdminUser.find(whodunnit).email
end
endThis alternative "whodunnit" will only be visible in "Version" sidebar and "Version" page.
- Add necessary gems to
Gemfileandbundle:
gem 'activeadmin', github: 'activeadmin'
gem 'devise'
gem 'inherited_resources', github: 'activeadmin/inherited_resources'
gem 'paper_trail', '~> 5.2.0'
gem 'active_admin_versioning'- Install Active Admin and Paper Trail:
$ bin/rails generate active_admin:install
$ bin/rails generate paper_trail:install
$ bin/rails db:create db:migrate db:seed- Add module of Paper Trail to
AdminUser:
class AdminUser < ApplicationRecord
has_paper_trail
end- Run server
bin/rails serverand open localhost:3000
install gem:
bundle install setup spec:
RAILS_ENV=test bundle exec rake setuprun spec:
bundle exec rspec
